我想在运行时创建一个[?,?,n]张量。 数据如下:
1)我正在检查的每个元素是n个元素的向量(所以[1,2,...,n])
2)每个“组”是前一类型的未知数量的元素(因此基本上是一个矩阵)
3)我不知道我会收到多少组。
我手动尝试了这样的事情:
shape3 = [
[ [ .111,.112,.113 ], [ .121,.122,.123 ], [ .131,.132,.133 ] ],
[ [ .211,.212,.213 ], [ .221,.222,.223 ] ]
]
var_shape3 = tf.Variable(shape3, name="var_shape_3")
with tf.Session() as session:
session.run(init_op)
print var_shape3.eval()
print var_shape3.get_shape()
但我收到错误
论证必须是一个密集的张量:[[[0.111,0.112,0.113],[0.121,0.122,0.123],[0.131,0.132,0.133]],[[0.211,0.212,0.213],[0.221,0.222] ,0.223]]] - 得到了形状[2],但想要[2,3,3]。
请问我做错了什么?
换句话说:我如何将这些数据放入张量中?
谢谢
答案 0 :(得分:3)
在TensorFlow中,您可以拥有dynamic dimensions,由?
符号表示。但是这些维度必须在执行期间推断,这意味着一旦执行代码,它就需要用数字表示。
在您的示例中(组中包含可变数量的组和元素),这将不起作用。例如。将起作用的是:
shape3 = [
[ [ .111,.112,.113 ], [ .121,.122,.123 ], [ .131,.132,.133 ] ],
[ [ .211,.212,.213 ], [ .221,.222,.223 ], [ .000,.000,.000 ] ]
]
您的两个选择是: