我一直在TF 1.3中使用估算器接口,包括创建数据输入函数:
training_input_fn = tf.estimator.inputs.pandas_input_fn(x=training_data, y=training_label, batch_size=64, shuffle=True, num_epochs=None)
并构建 NN:
dnnclassifier = tf.estimator.DNNClassifier(
feature_columns=dnn_features,
hidden_units=[1024, 500, 100],
n_classes=2,
model_dir='./tmp/ccsprop',
optimizer=tf.train.ProximalAdagradOptimizer(
learning_rate=0.001,
l1_regularization_strength=0.01
))
并执行它
dnnclassifier.train(input_fn=training_input_fn, steps=1500)
经过大量搜索,我认为没有简单的方法可以在不从头开始重新创建模型的情况下添加张量板输出,并在此处指出 https://www.tensorflow.org/extend/estimators
即便如此,我也找不到很好的例子可以遵循,两者都创建了一个带有张量板输出的简单 dnnClassifier。 有什么指导吗?
我有基本模型在工作,但需要更仔细地检查它,以便最终使用实验进行调整。不明白怎么回事?
调用DNNClassifier.train
时,它接受hooks
参数,可以创建一个 SummarySaverHook 并将其添加到hooks
中。
更新
将指标(例如准确性)添加到 TensorBoard 时,您应该执行几个步骤:
-
定义一个计算精度的
Tensor
:acc_op = ...
; -
将
Tensor
添加到tf.summary.scalar
:tf.summary.scalar('acc', acc_op)
; -
tf.Graph
中可以有多个tf.summary
,所以我们定义了一个merge_summary_op = tf.summary.merge_all()
来获取一个op
来合并所有度量Tensor
。 -
将merge_summary_op添加到
summary_writer = tf.summary.FileWriter()
中; -
将
summary_writer
添加到SummarySaverHook
中,或使用自己的代码调用summary_writer
。
有关GH的扩展讨论,请参见此处: https://github.com/tensorflow/tensorflow/issues/12974#issuecomment-339856673
这样可以从预制模型中获取全套 TB 输出:
dnnclassifier = tf.estimator.DNNClassifier(
feature_columns=dnn_features,
hidden_units=[1024, 500, 100],
n_classes=2,
model_dir='./tmp/ccsprop',
optimizer=tf.train.ProximalAdagradOptimizer(
learning_rate=0.001,
l1_regularization_strength=0.01),
config=tf.estimator.RunConfig().replace(save_summary_steps=10)
)
注意最后一行,注意哪里需要括号!