对于我的应用程序,我正在尝试使用[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提供给操作,但我希望有一种更简洁的方法将这样的列表转换为张量。
答案 0 :(得分:6)
不,因为None
和64
具有不同的类型,并且所有张量都是键入的:您不能在一个张量中包含不同类型的元素。
你能做的最接近的事是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个,所以应该没问题。