将列表列表传递给tensorflow

时间:2016-10-26 18:48:03

标签: python tensorflow

我想知道如何将列表列表传入张量流中的张量。我能够传递[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:使用序列设置数组元素。

感谢帮助!

1 个答案:

答案 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将其更改为您需要的矩阵或更高维度的形状。