计算网络两个输出之间的 cosine_proximity 损失

2024-02-04

我正在使用 Keras 2.0.2 功能 API (Tensorflow 1.0.1) 来实现一个接受多个输入并产生两个输出的网络a and b。我需要使用 cosine_proximity 损失来训练网络,这样b是标签a。我该怎么做呢?

在这里分享我的代码。最后一行model.fit(..)是有问题的部分,因为我本身没有标记数据。标签是由模型本身生成的。

from keras.models import Model
from keras.layers import Input, LSTM
from keras import losses

shared_lstm = LSTM(dim)

q1 = Input(shape=(..,.. ), name='q1')
q2 = Input(shape=(..,.. ), name='q2')
a = shared_lstm(q1)
b = shared_lstm(q2)
model = Model(inputs=[q1,q2], outputs=[a, b])
model.compile(optimizer='adam', loss=losses.cosine_proximity)

model.fit([testq1, testq2], [?????])

你可以先定义一个假的真实标签。例如,将其定义为输入数据大小的一维数组。

现在是损失函数。你可以这样写。

def my_cosine_proximity(y_true, y_pred):
    a = y_pred[0]
    b = y_pred[1]
    # depends on whether you want to normalize
    a = K.l2_normalize(a, axis=-1)
    b = K.l2_normalize(b, axis=-1)        
    return -K.mean(a * b, axis=-1) + 0 * y_true

我已经成倍增加y_true零并添加它只是为了让 Theano 不会给出丢失输入的警告/错误。

你应该打电话给你的fit正常运行,即包含您的虚假真实标签。

model.compile('adam', my_cosine_proximity) # 'adam' used as an example optimizer 
model.fit([testq1, testq2], fake_y_true)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算网络两个输出之间的 cosine_proximity 损失 的相关文章

随机推荐

  • 输出到 csv 文件将数据转储到浏览器,但不转储到文件

    我尝试在 golang beego 框架中将一些数据输出到 csv 文件 这是我的代码 records make string len devicesData for k v range devicesData records k stri
  • 卸载 Microsoft ASP.NET 和 Web 工具

    我认为此扩展导致我的 Visual Studio 2015 Update 2 出现问题 但我无法卸载它 在 扩展 下 它已列出 但 删除 禁用 按钮呈灰色 我在 删除程序 功能 下也找不到它 我到底如何卸载这个扩展 通过其安装程序卸载 下载
  • VSCode 自动导入不适用于干净的角度项目

    使用 Typescript 3 9 7 拥有一个干净的 Angular 10 项目 一些自动导入和建议不起作用 例如 我开始输入 FormsM 它应该出现 FormsModule 来自动完成并从 angular forms 自动导入 但此选
  • 数据表和并行计算

    继这篇文章之后 R 中的多核和 data table https stackoverflow com questions 14697670 multicore and data table in r 我想知道在使用 data table 时
  • 使用 Mongo ObjectId 类型作为 Meteor 用户 ID

    我正在使用 Meteor 并且有一个关于覆盖 Meteor 用于用户 ID 的类型的默认行为的问题 我希望用户能够由唯一标识 idObjectId 类型的字段 而不是 Meteor 默认的任何类型 字符串 为了实现这种情况 我可以在某个地方
  • Android ListView多项选择在点击后不显示突出显示

    我有一个处于多选模式的ListView 我不想要复选框 我只是希望当我单击项目时 它们可以突出显示以显示选中状态 再次单击时 突出显示将消失并取消选中 所以现在我的问题是我的项目根本没有被检查和突出显示 我不知道为什么 这是代码 mFrie
  • 嵌套文件夹中的 web.config

    我正在尝试在另一个网络应用程序中安装一个应用程序 我有我的 aspx 页面和一些代码 我将其放入主应用程序的 app code 文件夹中 我已经为连接字符串等添加了自己的 web config 文件 但我认为存在冲突 所以我的问题是两个人
  • 如何为 opencart 多商店使用单独的语言文件?

    我使用的是 opencart 版本 1 5 5 1 我们有一个使用 opencart 框架编码的网站 该网站还使用 opencart 多商店功能 所有商店均使用英语 现在的问题是 是否可以针对不同的商店使用不同的语言标签 例如 一家商店与运
  • 如何在日语语言环境中显示反斜杠

    在我的应用程序中 我使用反斜杠作为基于文本的活动指示器的一部分 典型的 序列 我删除了 因为它具有不同的宽度 一切都很顺利 直到我看到我的应用程序在日本计算机上运行 反斜杠被替换为日语字符 我怎样才能避免这种情况 您可以使用 oOo 作为序
  • Cassandra:向表中添加新列

    您好 我刚刚在我的表 my table 中添加了一个新列 Business sys ALTER TABLE my table ALTER business sys TYPE set
  • 有没有办法在界面生成器中制作渐变背景色?

    对于我的应用程序 我使用 TableView 并使用自定义的 UITableViewCells 我通过界面生成器而不是以编程方式自定义了我的单元格 有没有办法在界面生成器中将自定义单元格的背景颜色设置为渐变 Thanks 这适用于 Swif
  • 上传多个文件显示错误代码:3

    这个问题和问的一样here https stackoverflow com questions 19275268 phonegap file transfer of picture fails on every other picture
  • NSTimer 一段时间后在后台停止

    当应用程序进入后台时 我使用 NSTimer 在 1 秒后调用一个方法 并在近 17 分钟后计时器停止工作 当它返回前台时 它再次开始工作 所以请告诉我为什么会发生这种情况以及如何解决该问题 我还尝试使用延迟递归的执行选择器来达到相同的目的
  • 调用 QtGui.QFileDialog.getExistingDirectory 时出错

    在 pyqt 代码中 我试图向用户提升一个对话框并让用户选择一个文件夹 看来 QtGui QFileDialog getExistingDirectory 方法应该能够做到这一点 问题是代码运行后有一些错误消息 D Lib debug pr
  • removeObject 是否释放 NSMutableArray 对象中的对象?

    我想知道当您在数组中使用removeObject 删除对象时 是否正确处理了删除的对象 被移除的对象会被释放吗 NSMutableArray 将释放它 如果这是最后一次保留 它将被释放 从文档中 与 NSArray 一样 NSMutable
  • 我的部分视图中的 Jquery 或 Javascript 问题

    我可以在部分视图中使用 jQuery 或 JavaScript 代码吗 我的部分视图中有一个网格 我试图在该部分视图中使用 jQuery 隐藏一个网格元素 我做不到 但如果我在没有部分视图的情况下使用它 相同的代码就可以工作 有人可以帮我吗
  • 委托不在单例中工作[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 为了在多个
  • Databricks - 无法从 DataFrame 写入 Delta 位置

    我想更改 Databricks Delta 表的列名称 所以我做了以下事情 Read old table data val old data DF spark read format delta load dbfs mnt main sal
  • 如何重建开发 Pod 变更?

    我有一个开发容器 我使用它在本地连接到我的应用程序 path gt Projects Swift pod 当我在该开发容器中的应用程序代码中进行更改时 构建后不会包含此更改 这就像我正在构建缓存代码 而不是更改我的代码 为了将代码更改包含到
  • 计算网络两个输出之间的 cosine_proximity 损失

    我正在使用 Keras 2 0 2 功能 API Tensorflow 1 0 1 来实现一个接受多个输入并产生两个输出的网络a and b 我需要使用 cosine proximity 损失来训练网络 这样b是标签a 我该怎么做呢 在这里