Skip to main content
 首页 » 编程设计

python之将列表列表传递到 tensorflow

2024年10月17日30mfryf

我想知道如何将列表的列表传递到 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 将其更改为您需要的矩阵或更高维形状。