TF-Slimは独自のトレーニングループを使用します。しかし、自分自身のテンソルフロートレーニングループを使用している間、TF-Slimモデル(Resnet50)を使用したいと考えています。 TFスリムモデルは単に予測を出力し、私は自分自身の総損失を計算します。私は誤差なくモデルを訓練することができ、訓練のエラーは収束しているようです。評価中にバッチ正規化の問題が発生したため質問しています(エラーはトレーニングエラーに比べて非常に高いです)。私はこれが不十分な訓練のステップに起因する可能性があることを知りました。しかし、私はTFスリムを誤って使用していないことを確認したい。slim.learning.train()を使用しないTensorflow TF-Slimの使用
TF-スリムトレーニング手順は、次のようになります。
#create_train_op ensures that each time we ask for the loss, the
update_ops
# are run and the gradients being computed are applied too.
train_op = slim.learning.create_train_op(total_loss, optimizer)
logdir = ... # Where checkpoints are stored.
slim.learning.train(
train_op,
logdir,
number_of_steps=1000,
save_summaries_secs=300,
save_interval_secs=600):
私はtrain_op
が、この
def update_gradients(update_ops, optimizer, total_loss, variables_to_train, global_step, summaries):
for grad, var in gradients:
if grad is not None:
summaries.add(tf.summary.histogram(var.op.name + '/gradients', grad))
grad_updates = optimizer.apply_gradients(gradients,
global_step=global_step)
update_ops.append(grad_updates)
update_op = tf.group(*update_ops)
with tf.control_dependencies([update_op]):
train_tensor = tf.identity(total_loss, name='train_op')
return train_tensor
のようなものを使用して、sess.run(train_tensor)
いを呼び出すにしたくありませんこれは内部的に問題を引き起こしますか?直接 slim.learning.train()
関数に、例えば、train_tensor
をgithub issues
それとも単に通過を許可されていない:私は1つがtrain_op
を使用する必要があることをここに読みますか?
それを実現するために)あなたがslim.learning.trainのパラメータリスト(中train_step_fnを上書きしようとすることができると思いますあなたが必要とする部品のための機能。それは技術的に同じでなければなりません。 – kwotsin
このチュートリアルでは、何を達成しようとしているのかいくつかの例があります。https://github.com/tensorflow/models/blob/master/slim/slim_walkthrough.ipynb – RoccoLacatus