2017-06-05 15 views
2

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_tensorgithub issues

それとも単に通過を許可されていない:私は1つがtrain_opを使用する必要があることをここに読みますか?

+0

それを実現するために)あなたがslim.learning.trainのパラメータリスト(中train_step_fnを上書きしようとすることができると思いますあなたが必要とする部品のための機能。それは技術的に同じでなければなりません。 – kwotsin

+0

このチュートリアルでは、何を達成しようとしているのかいくつかの例があります。https://github.com/tensorflow/models/blob/master/slim/slim_walkthrough.ipynb – RoccoLacatus

答えて

0

私はあなたが `slim.learning.train`と解剖のソースコードに読んで試すことができます

関連する問題