我想知道如何将列表列表传入张量流中的张量。我能够传递[batch_size,seq_len]的数组,其中每个项目只是一个数字。但是现在我还有一个列表的列表(batch_size,seq_len),但是如何传入呢?
我试过了:
self.inputs_X = [tf.placeholder(tf.int32, shape=[None, None],
name='inputs_X{0}'.format(i)) for i in xrange(SEQ_LEN)]
(*我可以在没有明确传入SEQ_LEN的情况下执行此操作吗?)
首先,tf.int32没有意义,因为我不再传入一个int,我在列表中传递。所以,我收到了这个错误:
ValueError:使用序列设置数组元素。
感谢帮助!
答案 0 :(得分:2)
TensorFlow相当于" x"的列表是增加现有张量的维度。
e.g。如果您传入的是[1,2,3,4,5]列表,并且现在想要传递这些列表,则将维度增加1并最终得到矩阵(也称为维数2的张量) )。
tf.int32
仍然有意义,因为你的张量仍然包含完全的整数。
很难说,但我认为您只需在形状参数中添加一个额外的元素,例如: tf.placeholder(tf.int32, shape=[None, None, SEQ_LEN])
(如果合适,将SEQ_LEN替换为None)。我还没有看到这些数据,所以SEQ_LEN也可能需要处于不同的位置。
另一种策略是将列表列表展平为单个列表,然后使用tf.reshape
将其更改为您需要的矩阵或更高维度的形状。