활성화를 VGG19.relu4_1
에서 픽셀로 "변환"하는 자동 엔코더를 만들었습니다. tensorflow.contrib.layers
(TF 0.10rc0에서와 같이)에 새로운 편의 기능을 사용합니다. 이 코드는 TensorFlow의 CIFAR10 튜토리얼과 비슷한 레이아웃을 가지고 있습니다. train.py
은 교육을 수행하고 모델을 디스크에 체크 포인트하고 하나는 eval.py
이며 새 체크 포인트 파일을 폴링하고 유추를 실행합니다.Trouble Restore Checkpointed TensorFlow net
내 문제는 평가가 교육만큼 좋지 않다는 것입니다. 손실 기능의 가치 나 출력 이미지를 볼 때도 마찬가지입니다 (교육과 동일한 이미지에서 실행하는 경우에도 마찬가지입니다). 이것은 복원 과정과 관련이 있다고 생각하게 만듭니다.
TensorBoard의 교육 과정에서 얻은 결과물을 보면 (결국) 좋았 기 때문에 인터넷 그 자체에 문제가 있다고 생각하지 않습니다. 이 같은
내 그물 모양 :
import tensorflow.contrib.layers as contrib
bn_params = {
"is_training": is_training,
"center": True,
"scale": True
}
tensor = contrib.convolution2d_transpose(vgg_output, 64*4, 4,
stride=2,
normalizer_fn=contrib.batch_norm,
normalizer_params=bn_params,
scope="deconv1")
tensor = contrib.convolution2d_transpose(tensor, 64*2, 4,
stride=2,
normalizer_fn=contrib.batch_norm,
normalizer_params=bn_params,
scope="deconv2")
.
.
.
그리고 train.py
에 나는이 체크 포인트 저장 않습니다
# run code that creates the net
variable_averages = tf.train.ExponentialMovingAverage(
mynet.MOVING_AVERAGE_DECAY)
saver = tf.train.Saver(variable_averages.variables_to_restore())
while polling:
# sleep and check for new checkpoint files
with tf.Session() as sess:
init = tf.initialize_all_variables()
init_local = tf.initialize_local_variables()
sess.run([init, init_local])
saver.restore(sess, checkpoint_path)
# run inference (with batch normalization's is_training = False)
: 나는 이렇게
eval.py
에서
variable_averages = tf.train.ExponentialMovingAverage(mynet.MOVING_AVERAGE_DECAY)
variables_averages_op = variable_averages.apply(tf.trainable_variables())
with tf.control_dependencies([apply_gradient_op, variables_averages_op]):
train_op = tf.no_op(name='train')
while training:
# train (with batch normalization's is_training = True)
if time_to_checkpoint:
saver.save(sess, checkpoint_path, global_step=step)
을
파란색은 학습 손실이며 주황색은 평가 손실입니다.
해결해 주셔서 감사합니다. 이 사실을 잘 느끼는 유일한 사람은 잘 문서화/고쳐 져야합니다. 'optimize_loss()'함수는 다른 contrib.layers가 광고 된대로 작동하는 데 필요한 것과는 달리 optimizer.minimize (loss, step)의 바로 가기에 불과하다고 생각했습니다. – DomJack