我一直在使用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
即便如此,我也找不到好的例子可以创建一个带有tensorboard输出的简单dnnClassifier。任何指导?
我有基本的模型工作,但需要更仔细地检查它,以便最终使用实验进行调整。别管怎么样?
答案 0 :(得分:3)
在致电DNNClassifier.train
时,会接受hooks
参数,您可以创建SummarySaverHook并将其添加到hooks
。
在TensorBoard中添加指标(例如精度)时,您应该采取以下几个步骤:
定义计算准确度的Tensor
:acc_op = ...
;
将Tensor
添加到tf.summary.scalar
:tf.summary.scalar('acc', acc_op)
;
tf.summary
中可以有多个tf.Graph
,因此我们定义merge_summary_op = tf.summary.merge_all()
以op
合并所有指标Tensor
将merge_summary_op添加到summary_writer = tf.summary.FileWriter()
;
将summary_writer
添加到SummarySaverHook
或使用您自己的代码致电summary_writer
。
答案 1 :(得分:2)
请参阅此处,了解有关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)
)
注意最后一行并注意你需要括号的位置!