私は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
を使用してトレーニングした後に手作業で行うように、バッチで自分の検証データを評価したいのですが、その方法はありますか?
ようこそスタックオーバーフロー。コードを書式設定する方法については、回答ウィンドウの右上にある「ヘルプ」を参照してください。 – Gary99