我在尝试弄清楚为什么Session.run()会出现会话图为空的错误。为什么Session.run()在这里不起作用呢?不知为何,我可以直接print(prediction)来获取结果。
难道我不需要使用Session.run()来开始构建模型以获取预测结果吗?
def new_samples(): #return np.array([[5.9,3,4.2,1.5],[6.9,3.1,5.4,2.1]], dtype=np.float32) return np.array(test_data_values, dtype=np.float32) predictions = list(classifier.predict_classes(input_fn=new_samples)) default_session = tf.Session() print(default_session.run(predictions))
注意:classifier = tf.contrib.learn.DNNClassifier
回答:
DNNClassifier
是一个 Estimator
,它是一种抽象层,能够为您处理诸如会话之类的事情。
使用高级API(如Estimator
或DNNClassifier
)的动机正是如此,这样您就不必担心这些问题。而且,一旦您有更多的工作者,需要管理会话会变得更加复杂,而这些都已为您处理好了 🙂