В 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
), но заполнители более высокого измерения, кажется, не позволяют это.Есть ли способ, позволяющий заполнителям более высокой размерности принимать пустой список в качестве входных данных?
(И да, я знаю, может показаться глупым хотеть ввести пустой список, но это все равно поможет, еслирешение этой проблемы.)