2017-02-23 3 views
0

교육 및 네트워크 실행을 위해 저장된 검사 점에서 모델을로드하기 위해 tensorflow 관리자 (https://www.tensorflow.org/programmers_guide/supervisor)를 사용했습니다. 그러나 체크 포인트 파일은 모델을 실행/평가 (graph.pbtxt의 타임 스탬프, model.ckpt.data 파일이 업데이트되고 새 events.out이 생성 됨) 될 때에도 업데이트된다는 사실을 알게되었습니다.교육 및 평가 작업 모두를위한 Tensorflow 감독자?

모델을 실행/평가하는 데 관리자를 사용하면 훈련 된 상태가 재설정되거나 변경되는 지 궁금합니다. 훈련 이외의 것을 감독자에게 사용하는 것이 바람직합니까?

기차 -

sv = tf.train.Supervisor(logdir=mylogdir) 
with sv.managed_session() as sess: 
    if not sv.should_stop(): 
     train_step.run(feed_dict={x: xtrain, y_: ytrain, keep_prob: 0.5}, session= sess) 

실행/만 평가합니다. 아래에서 모델의 숙련 된 상태를 수정하지 않으려합니다.

sv = tf.train.Supervisor(logdir=mylogdir)  
with sv.managed_session() as sess: 
    for yconv in sess.run(y_conv, feed_dict={x: xtest, keep_prob: 1.0}): 
     #use yconv to predict, evaluate etc. 

답변

1

모델은 대개 'model.ckpt-NUM'파일 이름으로 저장됩니다. 평가가 파일을 업데이트하지 않는 한, 당신은 안전합니다.

로깅/요약 덮어 쓰기가 걱정된다면. 요약 이름을 선택하는 데주의해야합니다.

예. 평가를 위해 요약 이름을 'eval/' +metric_name, 교육을 위해 'train/' +metric_name을 예로 들면, herehere을 참조하십시오. here

+0

감사를 표시 API의에서와 같이 평가 결과를 저장하기위한 또한 다른 디렉토리를 선택할 수 있습니다 ("logdir") :

편집 할 수 있습니다. 평가 코드는 model.ckpt 파일의 타임 스탬프를 변경합니다. 왜 그거야? – Achilles

+0

마지막 편집을 참조하십시오, 도움이 될까요? – yuval

+0

고마워, 네. 교육 데이터 (모델 * 파일에 저장되어 있다고 가정)에 대해 우려하고 있습니다. 평가 - sess.run의 yconv (y_conv, feed_dict = {x : xtest, keep_prob : 1.0}) :'-이 모델 * 파일 (적어도 시간 소인)을 업데이트하는 것처럼 보입니다. 왜 변경 사항이 교육에 영향을 미치는지 궁금합니다. 어떤 방식 으로든 파일 내에 저장된 데이터. 이상적으로는 읽기 전용 모드로 액세스하는 것이 좋습니다. 다른 디렉토리 사용에 대한 제안을 주셔서 감사합니다. 평가를 위해 숙련 된 모델을 복사하는 중간 과정을 시도해 볼 수도 있습니다.하지만이 작업을하지 않고 작동되기를 바라고 있습니다. – Achilles

관련 문제