我使用tf.contrib.learn.Estimator
來訓練具有20多層的CNN。我正在使用GTX 1080(8 GB)進行培訓。我的數據集不是很大,但是我的GPU的內存不足,批量大於32。因此,我使用批量大小爲16的訓練和評估分類器(GPU在評估時耗盡內存,以及batch_size未指定)。使用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
進行培訓後手動完成的那樣,是否有辦法做到這一點?
歡迎來到Stack Overflow。請參閱答案窗口右上角的「幫助」,瞭解如何格式化代碼。 – Gary99