将可变大小的numpy数组转换为Tensorflow张量

时间:2019-03-21 08:53:27

标签: python numpy tensorflow tensorflow2.0

我正在尝试Tensorflow 2.0 Alpha预览并正在测试Eager执行。 我的疑问是,如果您有一个中间大小可变的numpy数组,例如

@tf.function
def check(x,y):
  return tf.cond(tf.greater(x,y), lambda: True, lambda: False)


print(check(tf.constant(2),2))

依次类推其余的数组,如何将它们急切地转换为张量。

当我尝试

input.shape
(10,)

input[0].shape
(109, 16)

input[1].shape
(266, 16)

tf.convert_to_tensor(input)

我知道

  

ValueError:无法将numpy ndarray转换为张量(无法获取   元素(以字节为单位)。

转换每个子数组都可以,但是因为子数组的大小不一样,所以tf.stack不起作用。

有什么帮助或建议吗?

2 个答案:

答案 0 :(得分:0)

似乎唯一可行的方法是使用列表列表,然后将其转换为参差不齐的张量,因为numpy不能很好地支持参差不齐的数组。如果我发现新内容,将会更新

答案 1 :(得分:0)

我也很想这件事。看着docs here,我最终尝试了

tf.convert_to_tensor(input, dtype=tf.float32)

那对我有用。