Tensorflow:将Tensor转换为numpy数组WITHOUT .eval()或sess.run()

时间:2016-07-28 21:52:55

标签: python numpy tensorflow

如何在不使用eval或sess.run()的情况下将张量转换为Numpy ndarray?

我需要将一个张量传递到一个feed字典中,我已经有一个会话正在运行。

3 个答案:

答案 0 :(得分:5)

事实上,你说"已经有一个会话正在运行"意味着对sess.run()实际上做了什么的误解。

如果你启动了tf.Session(),你应该可以使用它来使用sess.run()来检索任何张量。如果你需要检索变量或常数张量,这非常简单。

value = sess.run(tensor_to_retrieve)

如果张量是占位符张量操作的结果,则需要使用feed_dict传递它们。

value = sess.run(tensor, feed_dict={input_placeholder: input_value})

没有什么能阻止你多次调用sess.run()。

答案 1 :(得分:0)

@jasekp的回答对我很有帮助。在表示(对抗性)图像的张量的特定情况下,我已经遇到了 tensor-> ndarray 转换。

我认为我的问题/答案(here)可能是针对特定案例的有用示例,或者可以帮助新手更好地理解@jasekp答案。

我的示例还涵盖了matplotlib图像可视化部分,但这是OT。

答案 2 :(得分:-1)

.numpy()会将张量转换为数组。