Tensorflow,Tensorflow的sparse_categorical_crossentropy中from_logits = True或False是什么意思?

2023-12-25

在张量流2.0中, 有一个损失函数叫做

tf.keras.losses.sparse_categorical_crossentropy(labels, targets, from_logits = False)

请问设置 from_logits = True 和 False 有什么区别? 我的猜测是,当传入值是 logits 时,您设置 from_logits = True,如果传入值是概率(由 softmax 等输出),那么您只需设置 from_logits = False (这是默认设置)。

但为什么?损失只是一些计算。为什么它的传入值需要有所不同? 我还在google的tensorflow教程中看到https://www.tensorflow.org/alpha/tutorials/sequences/text_ Generation https://www.tensorflow.org/alpha/tutorials/sequences/text_generation即使最后一层的传入值是 logits,它也不会设置 from_logits = True。 这是代码

@tf.function
def train_step(inp, target):
  with tf.GradientTape() as tape:
    predictions = model(inp)
    loss = tf.reduce_mean(
        tf.keras.losses.sparse_categorical_crossentropy(target, predictions))
  grads = tape.gradient(loss, model.trainable_variables)
  optimizer.apply_gradients(zip(grads, model.trainable_variables))

  return loss

模型在哪里

 model = tf.keras.Sequential([
    tf.keras.layers.Embedding(vocab_size, embedding_dim, 
                              batch_input_shape=[batch_size, None]),
    tf.keras.layers.LSTM(rnn_units, 
                        return_sequences=True, 
                        stateful=True, 
                        recurrent_initializer='glorot_uniform'),
    tf.keras.layers.Dense(vocab_size)
  ])

它没有最后一层softmax。 (此外,在本教程的另一部分中,它设置了 from_logits = True)

那么,我设置为True与否并不重要吗?


迪帕克提到的帖子有一些数学背景。

但为了简单起见, from_logits=True 意味着 crossEntropy 层的输入是正常张量/logits,而如果 from_logits=False ,意味着输入是概率,通常你应该在最后一层进行一些 softmax 激活。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tensorflow,Tensorflow的sparse_categorical_crossentropy中from_logits = True或False是什么意思? 的相关文章

随机推荐

  • 如何在 MS Access 中使用 C# 获取所有表名和列名?

    如何用C 获取Access 2007中所有表的名称和列表的名称 我想将表的名称绑定到组合框 将列名称绑定到列表框 这个简单的方法将为您返回一个包含所有列名称的数据表 void Main using OleDbConnection con n
  • 如何将图像直接从flask服务器发送到html?

    我是 Flask 的新手 我正在尝试制作一个应用程序 这样图像是由 html 和 js 从网络摄像头拍摄的 然后通过 ajax 请求发送到服务器 我得到了这部分 然后对图像进行一些处理 并且必须将其发送回前端 我知道如何在烧瓶中正常发送数据
  • 为什么节点需要缓存被填满并泄漏

    我正在对使用 Babel 转译的环回 API 进行压力测试 然而 在这些较长的 冒烟 测试中 我们看到堆分析中的 require 缓存变得相当大 高达 1GB 并且没有获得 GCd 我知道 require 缓存在最后一个引用被删除之前不会进
  • 为什么 RESTful api 中通常不使用 RSA 签名?

    我开发了一个简单的应用程序 不使用 至少在开始时 任何第三方授权 我想创建一个供 iOS Android 任何客户端使用的 RESTful api 因此我阅读了很多有关 RESTful API 实现的信息 然而 实现它们的通常方法包括发送某
  • 无法运行黄瓜测试 - java.lang.NoSuchMethodError: cucumber.runtime.Runtime.

    我尝试使用 Stackoverlow 解决方案多次运行 Cucumber 为其他人解决了这个问题 这对我不起作用 我运行 runnerfile 的堆栈跟踪 java lang NoSuchMethodError cucumber runti
  • 领域错误:属性需要定义所包含类型的协议

    我有以下型号并且正在使用Realm interface GUIRoutineModel GUIModel GUIModel is a subclass of RLMObject property nonatomic retain NSStr
  • 如何获取要发布到 Gravity Forms 的 html/css 表单?

    我有一个 Photoshop psd 到 WordPress 登陆页面转换项目 我首先将其转换为基本的 html css 页面 其中包括非功能性但样式正确的表单 由于需要将用户条目发布到 WordPress 中的重力形式插件 项目范围扩大了
  • 将因子得分添加到原始数据集

    我进行了因子分析并生成了 5 个因子 现在 我想在原始数据集中添加这些因素以运行回归 并使用自变量保留这些因素 有人可以告诉我该怎么做吗 我用于因子分析的代码如下 result 1 lt subset result select c 17
  • adb 无法识别 Android 设备

    我的 Android 三星 Galaxy Tab 7 遇到了一个大问题 每当我尝试将其连接到我的计算机时 设备的名称不是在我的 adb 设备中正常显示 而是 状态为在线或设备 我真的不知道问题是什么 任何帮助将不胜感激 如果您需要更多信息
  • 带有放大弹出回调的无限滚动

    我正在使用无限滚动和放大弹出窗口 弹出窗口适用于 第 1 页 的内容 但此后会失败 我尝试在InfiniteScroll 调用中使用MagnificPopup 的回调 grid infiniteScroll path pagination
  • Metal 文件作为 iOS 框架的一部分

    我正在尝试创建一个与 METAL Api iOS 配合使用的框架 我对这个平台还很陌生 我想知道如何构建框架来使用 metal 文件 我正在构建一个静态库 而不是动态库 它们应该是 a 文件的一部分 还是作为框架包中的资源文件 或者还有其他
  • 将 JSON 反序列化为现有对象 (Java)

    我想知道如何使用 Jackson JSON 库将 JSON 反序列化为现有对象 我试图找到如何做到这一点 但它似乎只能获取一个类并实例化它本身 或者如果不可能 我想知道是否有任何 Java JSON 反序列化库可以做到这一点 这似乎是 C
  • 如何使用 Server.TLSNextProto 禁用 HTTP/2

    我有一个处理 https 请求的 Go 服务器 package main import fmt net http log const port 5966 cert tmp cert pem key tmp key pem func main
  • Visual Studio - 脚本内标记语法突出显示[类型:text/html]

    有谁知道 Visual Studio 2008 如何或是否可以突出显示 text html 类型的脚本块内的 html 语法 就像 aspx html 页面上的任何其他标记一样 我正在使用脚本块来容纳客户端模板的模板 假设页面本身是 ASP
  • 如何使用 PHP 将 MySQL 时间转换为 UNIX 时间戳?

    有很多问题询问 UNIX 时间戳到 MySQL 时间 我需要相反的方式 是的 有什么想法吗 Use strtotime http php net manual en function strtotime php timestamp strt
  • Typescript 2.0 @types 不会自动引用

    使用 TS 2 0 Beta 我无法让新的 types 工作 我的代码中的某处 import as angular from angular TS 2 0 类型 npm install save types angular tsc 但编译器
  • 当我请求 ?querystring 时,为什么 SimpleHTTPServer 重定向到 ?querystring/?

    我喜欢使用 Python 的 SimpleHTTPServer 来本地开发各种需要通过 Ajax 调用等加载资源的 Web 应用程序 当我在 URL 中使用查询字符串时 服务器总是重定向到附加斜杠的同一 URL 例如 folder id 1
  • 使所有变量全局化

    我的 Python 脚本中有一个函数 其中创建了多个变量 我想在其他函数中使用它们 我想用global为此 但我认为这样做是不正确的方法 那么谁能告诉我在一个函数中为其他函数创建变量的最佳方法是什么 将变量组织成class http doc
  • 如何直接在Python中获取字典键作为变量(而不是通过从值搜索)?

    很抱歉这个基本问题 但我对此的搜索除了如何根据字典的值获取字典的键之外没有发现任何内容 我不想使用它 因为我只想要键的文本 名称 并且担心搜索如果字典有很多条目 按值可能最终会返回 2 个或更多键 我想做的是 mydictionary ke
  • Tensorflow,Tensorflow的sparse_categorical_crossentropy中from_logits = True或False是什么意思?

    在张量流2 0中 有一个损失函数叫做 tf keras losses sparse categorical crossentropy labels targets from logits False 请问设置 from logits Tru