将三维坐标序列转换为具有张量流的矩阵序列

时间:2018-03-15 22:30:32

标签: python tensorflow stack valueerror

我正在尝试构建一个将三维坐标序列转换为一系列矩阵的数据流图。第一层应采用每个3D输入向量,并将其与每行权重矩阵成分相乘。我使用以下代码来完成工作:

import tensorflow as tf

P = tf.placeholder(tf.float32, [None, 3])
W = tf.Variable(tf.random_uniform([5, 3], 0, 1, dtype=tf.float32))
Z = tf.stack([ tf.multiply(p, W) for p in tf.unstack(P)])
print(Z.shape)

但上面的代码导致以下错误消息:

...
ValueError: Cannot infer num from shape (?, 3)

似乎tf.unstack()不接受未知维度的张量。如果我在占位符P的定义中将值替换为整数值,则上述代码将起作用。但是,该整数是序列的长度,并且在设计时不知道。

因此,我的问题是如何才能进行这种“动态”的叠加/叠加?还有其他方法可以翻译吗?

请注意,tensorflow中的大多数操作通过逐个获取输入向量来处理未知维度的张量,但操作multiply()和unstack()不能以这种方式工作。

感谢adavnce

0 个答案:

没有答案