Tensorflow Matmul如何处理通道=无

时间:2018-11-10 09:25:56

标签: python tensorflow matrix-multiplication tensor

我试图做两个张量的乘积,一个是[None,4,256],另一个是它的转置(我使用tf.transpose并得到一个张量[256,4,None])。预期结果是[4,4]张量。当我使用matmul时,它返回一个错误。我想知道如何获得预期的结果?谢谢!

#inputs: [None, 4, 256]
inputs_transpose = tf.transpose(inputs, perm = [0, 2, 1]) #[None, 256, 4]
temp_weights = tf.matmul(inputs, inputs_transpose) #[4, 4]expected

1 个答案:

答案 0 :(得分:0)

来自Tensowflow docs

“注意:当Python列表或标量中不存在None时,此函数与float和string类型的默认Numpy行为有所不同。而不是静默转换None值,而是会引发错误。”

在创建张量时,Tensowflow不接受None值。 我试图重新创建系统上的安装程序,并收到以下错误消息:

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

在尝试使用python列表之前,您需要通过将None替换为0来显式处理None。