【问题标题】:Error with tf.nn.sparse_softmax_cross_entropy_with_logitstf.nn.sparse_softmax_cross_entropy_with_logits 出错
【发布时间】:2019-09-10 21:47:28
【问题描述】:

我正在使用 tf.nn.sparse_softmax_cross_entropy_with_logits,当我通过标签和 logits 时,我收到以下错误

tensorflow.python.framework.errors_impl.InvalidArgumentError:标签 必须是一维的,但形状为 [50,1]

我不明白[50,1] 的形状与一维的不同

【问题讨论】:

  • 问题是你的标签是一个二维张量(即 [50, 1])。只需使用tf.reshape(<labels>, [-1]),这样您的标签就会是一维张量(即 [50])

标签: python tensorflow neural-network entropy


【解决方案1】:

我不明白为什么拥有形状 [50,1] 与 1D 不同。

虽然您可以通过简单的挤压将 [50, 1] 2D 矩阵重塑为 [50] 1D 矩阵,但 Tensorflow 永远不会自动执行此操作。

tf.nn.sparse_softmax_cross_entropy_with_logits 用于检查输入形状是否正确的唯一启发式方法是检查其具有的维数。如果它不是一维的,它会在不尝试其他启发式方法(例如检查输入是否可以压缩)的情况下失败。这是一项安全功能。

【讨论】:

    猜你喜欢
    • 2018-03-08
    • 2019-08-29
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    • 2015-06-20
    • 1970-01-01
    • 2022-12-03
    • 2021-02-17
    相关资源
    最近更新 更多