Machine learning 如何在TensorFlow 1.0中为估算器使用ValidationMonitor?

Machine learning 如何在TensorFlow 1.0中为估算器使用ValidationMonitor?,machine-learning,tensorflow,Machine Learning,Tensorflow,TensorFlow提供了将ValidationMonitors与几个预定义估计器(如tf.contrib.learn.DNNClassifier)相结合的可能性。 但是我想为我自己的估计器使用ValidationMonitor,我是基于它创建的 对于我自己的估计器,我首先初始化ValidationMonitor: validation_monitor = tf.contrib.learn.monitors.ValidationMonitor(testX,testY,every_n_steps=

TensorFlow提供了将ValidationMonitors与几个预定义估计器(如tf.contrib.learn.DNNClassifier)相结合的可能性。 但是我想为我自己的估计器使用ValidationMonitor,我是基于它创建的

对于我自己的估计器,我首先初始化ValidationMonitor:

validation_monitor = tf.contrib.learn.monitors.ValidationMonitor(testX,testY,every_n_steps=50)

estimator = tf.contrib.learn.Estimator(model_fn=model,model_dir=direc,config=tf.contrib.learn.RunConfig(save_checkpoints_secs=1))

input_fn = tf.contrib.learn.io.numpy_input_fn({"x": x}, y, 4, num_epochs=1000)
这里我通过了监视器,如tf.contrib.learn.DNNClassifier:

estimator.fit(input_fn=input_fn, steps=1000,monitors=[validation_monitor])
此操作失败,并打印了以下错误:

ValueError:功能与给定信息不兼容。给定特征:张量(“输入:0”,形状=(?,1),dtype=float64),所需签名:{'x':张量签名(dtype=tf.float64,形状=TensorShape([Dimension(None)]),is_sparse=False)}


我如何为自己的估计器使用监视器?

谢谢。

当将包含testX和testY的输入传递给ValidationMonitor而不是直接传递张量testX和testY时,问题就解决了。

请注意,您的错误是由于ValidationMonitor希望x是类似于
{'feature\u name\u as\u string':feature\u tensor}
的字典造成的,在您的
input\u fn中,
是通过调用
tf.contrib.learn.io.numpy\u input\u fn(…)
在内部完成的

有关如何构建功能词典的更多信息,请参见