TensorFlow:有没有办法将无类型的列表转换为Tensor?

时间:2017-05-31 08:57:29

标签: tensorflow

对于我的应用程序,我正在尝试使用[None, 1, 1, 64]将带有tf.convert_to_tensor([None, 1, 1, 64])的列表转换为张量,但这会给我一个错误:

TypeError: Failed to convert object of type <type 'list'> to Tensor. Contents: [None, 1, 1, 64]. Consider casting elements to a supported type.

理想情况下,我希望None成为第一个维度,因为它代表了batch_size。目前,我唯一可以避免此错误的方法是明确地将batch_size提供给操作,但我希望有一种更简洁的方法将这样的列表转换为张量。

2 个答案:

答案 0 :(得分:6)

不,因为None64具有不同的类型,并且所有张量都是键入的:您不能在一个张量中包含不同类型的元素。

你能做的最接近的事是nan

tf.convert_to_tensor([np.nan, 1, 1, 64])

虽然我无法想象你为什么要那样。

但您可以创建TensorShape

tf.TensorShape([None, 1, 1, 64])

答案 1 :(得分:0)

使用tf.convert_to_tensor([-1,1,1,64])代替None,因为您已经指定了4个维度中的3个,所以应该没问题。