我想知道如何将列表的列表传递到 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:使用序列设置数组元素。
感谢您的帮助!
最佳答案
TensorFlow 相当于“x 的列表”是增加现有张量的维度。
例如如果你传入一个 [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
将其更改为您需要的矩阵或更高维形状。
关于python - 将列表列表传递到 tensorflow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40269991/