我想让模型预测学习过程中一些随机样本的输出。目前,我构建了一个派生自tf.contrib.learn.monitors.EveryN
并覆盖every_n_step_end
的类,如下所示:
def every_n_step_end(self, step, outputs):
# evaluate the model on the validation set
self._estimator.evaluate(
input_fn=input_fn_eval,
metrics=validation_metrics,
steps=None)
# generate some random samples
for _ in range(FLAGS.num_samples):
input_sample, output_sample, label = random.choice(validation_set)
prob = self._estimator.predict(input_fn=lambda: get_features(input_sample, output_sample))
print("{}:{}:{}:{}".format(input_sample, output_sample, prob[0, 0], label))
问题在于每次迭代,predict
函数从检查点加载模型等。这是正确的方法吗?
答案 0 :(得分:0)
predict
方法获取输入函数(input_fn
)以预处理并将数据提供给模型。因此,创建输入函数然后将其传递给predict
方法以获取预测概率列表变得很容易。有关编写input_fn函数的详细信息,请参阅Building Input Functions with tf.contrib.learn。