0

私はtf.contrib.learn.Estimatorを使用して、20以上のレイヤーを持つCNNをトレーニングしています。私はトレーニングのためにGTX 1080(8 GB)を使用しています。私のデータセットはそれほど大きいわけではありませんが、私のGPUは32より大きいバッチサイズでメモリ不足になります。したがって、私はバッチサイズ16を使ってトレーニングを行い、分類器を評価しています(GPUは評価中にバッチサイズ指定されていません)。TensorFlow検証モニタでバッチサイズを使用する

# Configure the accuracy metric for evaluation 
    metrics = { 
     "accuracy": 
      learn.MetricSpec(
       metric_fn=tf.metrics.accuracy, prediction_key="classes"), 
    } 

    # Evaluate the model and print results 
    eval_results = classifier.evaluate(
     x=X_test, y=y_test, metrics=metrics, batch_size=16) 

ここで問題は、100ステップごとに、私は唯一の訓練の損失が画面上に印刷されることです。私も検証損失と精度を印刷したい、だから私はValidationMonitor

validation_monitor = tf.contrib.learn.monitors.ValidationMonitor(
     X_test, 
     y_test, 
     every_n_steps=50) 
    # Train the model 
    classifier.fit(
     x=X_train, 
     y=y_train, 
     batch_size=8, 
     steps=20000, 
     monitors=[validation_monitor] 

ActualProblemを使用しています:私はValidationMonitorを使用する場合(メモリ不足)私のコードがクラッシュすると、私は、問題があれば解決するかもしれないと思います私はここでもバッチサイズを指定することができました。私はそれを行う方法を理解できません。 ValidationMonitorは、classifier.evaluateを使用してトレーニングした後に手作業で行うように、バッチで自分の検証データを評価したいのですが、その方法はありますか?

答えて

1

モデル定義にconfig=tf.contrib.learn.RunConfig(save_checkpoints_secs=save_checkpoints_secs)を追加する必要があります。 save_checkpoints_secsはsave_checkpoints_stepsに変更できますが、両方に変更することはできません。

+0

ようこそスタックオーバーフロー。コードを書式設定する方法については、回答ウィンドウの右上にある「ヘルプ」を参照してください。 – Gary99

関連する問題