2
tensorflow.estimator.DNNRegressorモデルをトレーニングするときにログに出力されるすべてのステップの損失値を取得したいと思います。TensorFlow DNNRegressorトレーニングリグレッサーから損失値を取得する
些細なナンセンス例を考える:
In [1]: import pandas as pd
In [2]: import numpy as np
In [3]: import tensorflow as tf
In [4]: X = pd.DataFrame({'X1':np.arange(1,10), 'X2':np.arange(11,20)})
In [5]: X
Out[5]:
X1 X2
0 1 11
1 2 12
2 3 13
3 4 14
4 5 15
5 6 16
6 7 17
7 8 18
8 9 19
In [6]: y = pd.Series(np.arange(1,10)/2)
In [7]: feature_cols = [tf.feature_column.numeric_column(col)
for col in X.columns]
In [8]: regressor =
tf.estimator.DNNRegressor(feature_columns=feature_cols,
hidden_units=[3,3],
model_dir='mymodel')
INFO:tensorflow:Using default config.
INFO:tensorflow:Using config: {'_tf_random_seed': 1,
'_save_checkpoints_secs': 600, '_log_step_count_steps': 100,
'_keep_checkpoint_max': 5, '_save_checkpoints_steps': None,
'_session_config': None, '_model_dir': 'mymodel',
'_keep_checkpoint_every_n_hours': 10000, '_save_summary_steps': 100}
In [9]: regressor.train(
input_fn=tf.estimator.inputs.pandas_input_fn(
x=X,
y=y,
num_epochs=None,
shuffle=True),
steps=1000)
INFO:tensorflow:Create CheckpointSaverHook.
INFO:tensorflow:Saving checkpoints for 1 into mymodel/model.ckpt.
INFO:tensorflow:step = 1, loss = 1090.0
INFO:tensorflow:global_step/sec: 685.57
INFO:tensorflow:step = 101, loss = 580.524 (0.146 sec)
INFO:tensorflow:global_step/sec: 807.454
INFO:tensorflow:step = 201, loss = 423.964 (0.124 sec)
INFO:tensorflow:global_step/sec: 875.857
INFO:tensorflow:step = 301, loss = 353.421 (0.114 sec)
INFO:tensorflow:global_step/sec: 788.649
INFO:tensorflow:step = 401, loss = 297.249 (0.127 sec)
INFO:tensorflow:global_step/sec: 649.258
INFO:tensorflow:step = 501, loss = 254.237 (0.154 sec)
INFO:tensorflow:global_step/sec: 803.059
INFO:tensorflow:step = 601, loss = 303.544 (0.125 sec)
INFO:tensorflow:global_step/sec: 674.359
INFO:tensorflow:step = 701, loss = 234.27 (0.148 sec)
INFO:tensorflow:global_step/sec: 818.35
INFO:tensorflow:step = 801, loss = 259.353 (0.122 sec)
INFO:tensorflow:global_step/sec: 672.83
INFO:tensorflow:step = 901, loss = 208.319 (0.149 sec)
INFO:tensorflow:Saving checkpoints for 1000 into mymodel/model.ckpt.
INFO:tensorflow:Loss for final step: 200.45.
Out[9]: <tensorflow.python.estimator.canned.dnn.DNNRegressor at 0x1076d5470>
だから、上記出力ステップをキャプチャしたいに= N、および損失=値私はプロットすることができ、そうでなければそれをさらに分析します。
私はキャプチャし、evaluate()
関数から返された損失関数値をプロットする方法を見つけることでしたが、ここに任意のヘルプ