2017-04-14 44 views
0

我想使用Tensorflow上DNNRegressor.fitValidationMonitor觸發一次

ValidationMonitor但它被觸發一次global_step = 1時。如何解決它?

every_n_step設置爲1這樣

validation_monitor = tf.contrib.learn.monitors.ValidationMonitor(
    test_dataset.data, 
    test_dataset.target, 
    every_n_steps=1) 

regressor = tf.contrib.learn.DNNRegressor(feature_columns=feature_columns, 
              hidden_units=[2], 
              model_dir="/home/maciej/tf-logs") 


regressor.fit(x=train_dataset.data, 
       y=train_dataset.target, 
       steps=1000, 
       monitors=[validation_monitor]) 

我得到在標準輸出上有什麼損失大約日誌和有關驗證的單一一個:

INFO:tensorflow:Saving dict for global step 201: global_step = 201, loss = 5.50003 
INFO:tensorflow:Validation (step 201): loss = 5.50003, global_step = 201 
INFO:tensorflow:global_step/sec: 96.1045 
INFO:tensorflow:loss = 6.3935, step = 301 
INFO:tensorflow:global_step/sec: 154.978 
INFO:tensorflow:loss = 4.77587, step = 401 
INFO:tensorflow:global_step/sec: 158.06 
INFO:tensorflow:loss = 3.72956, step = 501 
INFO:tensorflow:global_step/sec: 151.51 
INFO:tensorflow:loss = 3.04578, step = 601 

這也證實了tensorboard。

完整的代碼和日誌可以在這裏找到: https://gist.github.com/maciejjaskowski/9f791e517f379c41d20cc72619909fe6

回答

0

正如Monitoring tutorial解釋, ValidationMonitors依靠保存檢查站。

考慮增加檢查點與每x秒:

config=tf.contrib.learn.RunConfig(save_checkpoints_secs=5) 

這爲我工作。