【发布时间】:2018-04-26 11:20:47
【问题描述】:
在 Python 中,我试图将一个空列表提供给一个第一维为 None 的多维张量流占位符。
import tensorflow as tf
a = [0,1,2]
b = [[4,5,6],
[7,8,9]]
c = []
# 1-D and 2-D placeholders
p_1D = tf.placeholder(shape=(None), dtype=tf.float32)
p_2D = tf.placeholder(shape=(None,3), dtype=tf.float32)
with tf.Session() as sess:
print(sess.run(p_1D, feed_dict={p_1D:a})) # prints [0.,1.,2.]
print(sess.run(p_2D, feed_dict={p_2D:b})) # prints [[4.,5.,6.],
# [7.,8.,9.]]
print(sess.run(p_1D, feed_dict={p_1D:c})) # prints []
print(sess.run(p_2D, feed_dict={p_2D:c})) # raises ValueError
具体来说,引发的错误是ValueError: Cannot feed value of shape (0,) for Tensor 'Placeholder_3:0', which has shape '(?, 3)。
由此,我可以看到如果空列表只有 1 个维度(None),则可以将空列表提供给占位符,但更高维度的占位符似乎不允许这样做。有没有办法让高维占位符接受一个空列表作为输入?
(是的,我知道,想要输入一个空列表可能看起来很愚蠢,但如果有解决方案,它仍然会有所帮助。)
【问题讨论】:
标签: python tensorflow