【问题标题】:Tensorflow matmul how to deal with channel=NoneTensorFlow matmul如何处理channel=None
【发布时间】:2018-11-10 09:25:56
【问题描述】:

我正在尝试对两个张量进行 matmul,一个是 [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

【问题讨论】:

    标签: python tensorflow matrix-multiplication tensor


    【解决方案1】:

    来自Tensowflow docs

    “注意:当 Python 列表或标量中存在 None 时,此函数与浮点和字符串类型的默认 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 来显式处理它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-05
      • 1970-01-01
      • 2021-10-08
      • 2014-04-16
      相关资源
      最近更新 更多