将具有非固定长度元素的列表转换为张量

时间:2016-11-06 14:34:58

标签: python tensorflow

似乎我无法将具有非固定长度元素的列表转换为张量。例如,我得到一个类似[[1,2,3],[4,5],[1,4,6,7]]的列表,我想通过{{将它转换为张量1}},它没有工作并抛出一个tf.convert_to_tensor我不想因为某些原因填充或裁剪元素,有什么方法可以解决它吗?
提前谢谢!

1 个答案:

答案 0 :(得分:3)

Tensorflow(据我所知)目前不支持尺寸不同的张量。

根据您的目标,您可以使用零填充列表(受this question启发),然后转换为张量。例如使用numpy:

>>> import numpy as np
>>> x = np.array([[1,2,3],[4,5],[1,4,6,7]])
>>> max_length = max(len(row) for row in x)
>>> x_padded = np.array([row + [0] * (max_length - len(row)) for row in x])
>>> x_padded
array([[1, 2, 3, 0],
   [4, 5, 0, 0],
   [1, 4, 6, 7]])
>>> x_tensor = tf.convert_to_tensor(x_padded)