【问题标题】:tensorflow sparse categorical cross entropy with logitstensorflow稀疏分类交叉熵与logits
【发布时间】:2019-05-23 23:06:27
【问题描述】:

我是一名新手程序员,试图遵循this 指南。 但是,我遇到了一个问题。该指南说将损失函数定义为:

def loss(labels, logits):
    return tf.keras.losses.sparse_categorical_crossentropy(labels, logits, from_logits=True)

这给了我以下错误:

sparse_categorical_crossentropy() 得到了一个意外的关键字参数 '来自_logits'

我认为from_logits 是函数中未指定的参数,文档支持该参数,tf.keras.losses.sparse_categorical_crossentropy() 只有两个可能的输入。

有没有办法指定正在使用的 logits 或者甚至是必要的?

【问题讨论】:

标签: python tensorflow


【解决方案1】:

from_logits 参数是在 Tensorflow 1.13 中引入的。

您可以将 1.12 和 1.13 与这些网址进行比较:

https://github.com/tensorflow/tensorflow/blob/r1.12/tensorflow/python/keras/losses.py
https://github.com/tensorflow/tensorflow/blob/r1.13/tensorflow/python/keras/losses.py

在撰写本文时,1.13 尚未发布。这就是本教程以行开头的原因

!pip install -q tf-nightly

【讨论】:

    【解决方案2】:

    我在学习本教程时遇到了同样的问题。我从

    更改了代码
    def loss(labels, logits):
        return tf.keras.losses.sparse_categorical_crossentropy(labels, logits, from_logits=True)
    

    def loss(labels, logits):
        return tf.nn.sparse_softmax_cross_entropy_with_logits(labels=labels, logits=logits)
    

    这解决了问题,而无需安装 tf-nightly。

    【讨论】:

      猜你喜欢
      • 2016-09-18
      • 2019-12-18
      • 2021-02-15
      • 2021-03-19
      • 2022-10-04
      • 1970-01-01
      • 2019-05-20
      • 2020-09-10
      • 2020-10-12
      相关资源
      最近更新 更多