屏蔽张量的损失

2024-03-09

假设我有像这样的 logits

[[4.3, -0.5, -2.7, 0, 0],
[0.5, 2.3, 0, 0, 0]]

显然,第一个示例中的最后两个和第二个示例中的最后三个被屏蔽(即它们为零),并且不应影响损失和梯度计算。

如何计算此 logits 和相应标签之间的交叉熵损失?为了理智起见,这个例子的标签可以是这样的

[[1, 0, 0, 0, 0],
[0, 1, 0, 0, 0]]

(一个问题:Logits 上的 Softmax,后跟 log,也适用于屏蔽零,并且 tf 的交叉熵方法也将考虑这些元素的损失。)

(另外,你可以这样思考这个问题:我在一个批次中有不同长度的 logits,即我的 logits 的长度分别为 3 和 2,分别用于eg.1和eg.2。同样的后面是标签。)


屏蔽交叉熵损失是一种常见操作,由库涵盖。它实际上处理更一般的权重概念;提供用于掩蔽的二进制权重。

mask = tf.equal(logits, 0) # as in the OP
weights = tf.to_float(mask) # convert to (0, 1) weights
loss = tf.losses.softmax_cross_entropy(labels, logits, weights)

不要通过实际计算输出的 softmax 然后计算交叉熵来计算 softmax 交叉熵,您会失去同时执行此操作的计算精度和稳定性。

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

屏蔽张量的损失 的相关文章

随机推荐

  • Perl 中的“字符串化”是什么?

    在 CPAN 模块的文档中DateTime http search cpan org drolsky DateTime 0 66 lib DateTime pm Formatters And Stringification我发现了以下内容
  • 在 Swift 中子类化 UINavigationBar

    我正在尝试创建一个自定义UINavigationBar类 然后使用Storyboard将其设置为我的班级UINavigationController的导航栏 这是我的代码UINavigationBar class class CustomN
  • 使用外部服务的 Shopify 自定义搜索

    我的情况 我们有一个 Shopify 商店 我们还有一个在 AWS 上实施和托管的搜索引擎 我们需要使用该搜索引擎而不是 Shopify 商店中的默认 search 理想情况下 当用户尝试搜索某些内容时 他们的查询 以及可能的其他内容 例如
  • C++ 静态变量总是在主线程上被破坏吗?

    简短的问题 C 11 静态 非线程本地 变量是否总是在主线程上分散注意力 它们是否总是仅在程序退出时被销毁 考虑到我们不手动调用它们的析构函数 UPDATE 为了简洁起见 我们假设调用了析构函数 我们没有拔掉插头 我们没有杀死 9 全局对象
  • 使用“Runtime.getRuntime().exec”从 Java 启动的进程无法访问文件系统位置

    从 Java 启动的进程Runtime getRuntime exec权限较少 我在 JavaDocs 中没有看到对此的描述以及如何管理它 如何保证启动的进程具有相同的环境和权限 更多细节 编写轻量级 Eclipse 插件maven htt
  • 安全 Rust 中的转换会导致运行时错误吗?

    我正在摆弄一点Any和铸造只是为了更深入地了解 Rust 从 C 开始 我已经习惯了强制转换可能导致运行时异常 因为在 C 中强制转换基本上意味着亲爱的编译器 相信我 我知道我在做什么 请将其转换为int32因为我知道它会起作用 但是 如果
  • R中的正态分布图[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试使用plot命令在r中绘制正态分布 plot x dnorm x mean sd 使用我的平均值和标准差值 然而 使用这些值 y
  • 从 C# 调用 NetValidatePasswordPolicy 始终返回密码必须更改

    我们有一个使用 Active Directory 来验证用户身份的 mvc 应用程序 我们正在利用System DirectoryServices并使用PricipalContext验证 principalContext ValidateC
  • 如何在 OS 10.6 (Snow Leopard) 上解决此 PostgreSQL 错误

    我按照以下说明设置 postgresql这个网站 http www robbyonrails com articles 2010 02 08 installing ruby on rails passenger postgresql mys
  • 输入图像中的通道数无效

    我在运行程序时收到错误 我特别考虑了 OpenCV 库中的颜色操作 我正在尝试构建一个程序 从 Raspberry Pi 摄像头获取视频并对其进行分析 我想找到视频中最亮的点 并计算该点距视频源中心的距离和角度 我正在做的项目将相机指向一个
  • GTK焦点链

    Currently I m working on a pyGTK3 application for which I want to set the focus chain When using the code below simplifi
  • 将一个系列分配给 Pandas DataFrame 的几行

    我有一个用索引和列准备的 pandas DataFrame 所有值都是 NaN 现在我计算了一个结果 该结果可用于 DataFrame 的多行 并且我想一次将它们全部分配 这可以通过循环来完成 但我很确定这个分配可以一次完成 这是一个场景
  • 如何在给定解决方案中评估在与用于生成上述解决方案的模型不同的模型中声明的谓词

    假设我们有两个模块A和B A在B中打开 您从 A 生成一个解决方案 并在 B 中有一些参数化谓词 这些谓词仅对 A 的元素进行推理 但由于某些原因 您不能将这些谓词放入模块 A 中 如何在 A 生成的解决方案中评估 B 中声明的谓词 以下是
  • 未找到与团队 ID“*****”和私钥匹配的“iOS 开发”签名证书

    我已经创建了一个新的配置开发证书 但 xcode 不接受它 并显示错误 找不到与团队 ID 匹配的 iOS Development 签名证书和私钥 如何解决这个错误 有时 即使您有有效的证书 Xcode 也会抛出此错误 这是因为您的帐户以某
  • 如何以二进制形式打印长整型?

    我正在尝试以二进制形式打印 Long 但它总是被切断0的 有没有办法强制它显示所有位 这是我的代码 long l 1 System out println Long toBinaryString long l 仅按提及的方式返回1由于删除了
  • 无法找到属性 - 从 NHibernate 3 切换到 3.3.1 后出现异常

    我有一个带有字段的类 protected DateTime insertDate 这是该字段的映射
  • 最佳拟合散点图线

    我正在尝试在 matlab 中用最适合的线绘制散点图 我可以使用 scatter x1 x2 或 scatterplot x1 x2 获得散点图 但基本拟合选项被遮蔽并且 lsline 返回错误 未找到允许的线型 什么也没做 任何帮助都会很
  • 验证 SSL/X.509 证书是否由另一个证书签名

    Question 如何使用 PyOpenSSL 或 Twisted 验证 X 509 证书是否由另一个证书签名 我希望客户端验证收到的服务器证书是否是签署其客户端证书的证书 我浏览了 PyOpenSSL 文档 似乎找不到任何关于如何与建立
  • 无法在 Golang 中的 GET 请求标头中传递 Bearer 令牌

    我正在使用 oauth2 访问第三方 API 我可以正常获取访问令牌 但是当我尝试通过在请求标头中传递不记名令牌来调用 API 时 会出现 401 未经授权 错误 尽管当我尝试通过 POSTMAN 通过将标头传递为 Authorizatio
  • 屏蔽张量的损失

    假设我有像这样的 logits 4 3 0 5 2 7 0 0 0 5 2 3 0 0 0 显然 第一个示例中的最后两个和第二个示例中的最后三个被屏蔽 即它们为零 并且不应影响损失和梯度计算 如何计算此 logits 和相应标签之间的交叉熵