Keras 中的自定义损失函数

2023-12-04

我正在研究一种图像类增量分类器方法,使用 CNN 作为特征提取器和全连接块进行分类。

首先,我对 VGG 训练网络进行了微调以完成新任务。一旦网络针对新任务进行了训练,我就会为每个类别存储一些示例,以避免忘记新类别何时可用。

当某些类可用时,我必须计算示例的每个输出,包括新类的示例。现在,向旧类的输出添加零,并在新类输出上添加与每个新类相对应的标签,我有了新标签,即: 如果有 3 个新班级进入……

旧类类型输出:[0.1, 0.05, 0.79, ..., 0 0 0]

新类类型输出:[0.1, 0.09, 0.3, 0.4, ..., 1 0 0]**最后的输出对应于类别。

我的问题是,如何更改自定义损失函数来训练新课程? 我想要实现的损失函数定义为:

loss function

其中蒸馏损失对应于旧类别的输出以避免遗忘,分类损失对应于新类别。

如果您能给我提供一个更改 keras 中损失函数的代码示例,那就太好了。

谢谢!!!!!


您所要做的就是为此定义一个函数,使用 keras 后端函数进行计算。该函数必须采用真实值和模型预测值。

现在,由于我不确定函数中的 g、q、x 和 y 是什么,因此我将在这里创建一个基本示例,而不关心它的含义或它是否是实际有用的函数:

import keras.backend as K

def customLoss(yTrue,yPred):
    return K.sum(K.log(yTrue) - K.log(yPred))
    

所有后台功能可见here.

之后,使用该函数而不是常规函数来编译模型:

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

Keras 中的自定义损失函数 的相关文章

  • 如何将本机 popcount 与 numba 一起使用

    我正在使用 numba 0 57 1 我想在我的代码中利用本机 CPU popcount 我现有的代码太慢 因为我需要运行它数亿次 这是一个 MWE import numba as nb nb njit nb uint64 nb uint6
  • 如何修复 Apache mod_wsgi 的 Python 版本不匹配问题?

    我收到此错误 Thu Jul 12 14 31 36 2012 error python init Python version mismatch expected 2 6 7 found 2 6 8 当尝试启动 Apache 服务器时 在
  • 如何测试使用 XCom 的 Apache Airflow 任务

    我正在尝试找出一种测试 DAG 的方法 其中有几个任务使用 XCom 进行通信 由于控制台命令只允许我从 DAG 运行任务 有没有一种方法可以测试通信而无需通过 UI 运行 DAG Thanks 这是一种对我有用的方法 尽管 Airflow
  • 如何为 Intellij/PyCharm 设置 PYTHONSTARTUP 脚本

    我尝试添加PYTHONSTARTUP环境变量 我还尝试了自定义启动脚本 但更令人惊讶的是 这also没有工作 npa别名无法识别 出于一点绝望 我什至尝试添加到interpreter options 那什么也没做 实际上是什么Interpr
  • 从主机名中提取域名

    是否有一种编程方式可以从给定的主机名查找域名 给出 gt www yahoo co jp 返回 gt yahoo co jp 有效但非常慢的方法是 拆分为 并从左侧删除 1 个组 使用 dnspython 加入并查询 SOA 记录 当返回有
  • Flask 中的 import 和 extends 有什么区别?

    我正在阅读 Flask Web 开发 在例4 3中 extends base html import bootstrap wtf html as wtf 我想知道 extends 和 import 有什么区别 我认为它们在用法上很相似 在什
  • python-polars 通过分隔符将字符串列拆分为许多列

    在 pandas 中 以下代码会将 col1 中的字符串拆分为许多列 有没有办法在极地做到这一点 d col1 a b c d a b c d df pd DataFrame data d df a b c d df col1 str sp
  • python:是否有用于对输入流进行分块的库函数?

    我想对输入流进行分块以进行批处理 给定一个输入列表或生成器 x in 1 2 3 4 5 6 我想要一个能够返回该输入块的函数 说 如果chunk size 4 then x chunked 1 2 3 4 5 6 这是我一遍又一遍地做的事
  • 根据给定列表中的值替换列中的值[重复]

    这个问题在这里已经有答案了 我在数据框中有一列 仅允许定义列表中存在的值 例如 给定列表 l1 1 2 5 6 如果列表中不存在列中的值 我需要将每个值替换为 0 column Expected column 1 1 5 5 2 2 3 0
  • 如何在交互式绘图(Python)中获得鼠标指向的(x,y)位置?

    我使用 ipython 笔记本 带有魔法 matplotlib nbagg 我正在审查matplotlib widget Cursor但仅查看光标widgets Cursor http matplotlib org 1 4 3 exampl
  • 使 np.loadtxt 使用多个可能的分隔符

    我有一个程序可以读取数据文件 用户可以选择他们想要使用的列 我希望它对于输入文件更加通用 有时 列可能如下所示 10 34 24 58 8 284 6 121 有时它们可 能看起来像这样 10 34 24 58 8 284 6 121 我希
  • 如何在 Pytorch 中将一维 IntTensor 转换为 int

    如何将一维 IntTensor 转换为整数 这 IntTensor int 给出错误 KeyError Variable containing 423 torch IntTensor of size 1 我所知道的最简单 最干净的方法 In
  • 如何绘制多类分类器的精度和召回率?

    我正在使用 scikit learn 我想绘制精度和召回曲线 我正在使用的分类器是RandomForestClassifier scikit learn 文档中的所有资源都使用二元分类 另外 我可以绘制多类的 ROC 曲线吗 另外 我只找到
  • 在python中安装scipy模块时出错

    我正在尝试使用 pip 在 python 中安装 scipy 模块 它显示以下错误 Command c users sony appdata local programs python python35 32 python exe u c
  • Qcut Pandas:ValueError:Bin 边缘必须是唯一的

    我使用 Pandas 中的 Qcut 将数据离散化为大小相等的存储桶 我想要有价格桶 这是我的数据框 productId sell prix categ popularity 11997 16758760 0 28 75 50 524137
  • 使用 statsmodels.formula.api 中的 ols - 如何删除常数项?

    我正在遵循第一个例子statsmodels教程 http statsmodels sourceforge net devel http statsmodels sourceforge net devel 如何指定在 ols 中不使用常数项进
  • 如何使用 pygame.mixer 重复音乐?

    我创建了以下使用 pygame mixer 播放 mp3 音乐的代码 然而 音乐不会重复 有什么想法可以让音乐重复播放吗 这是代码 playlist list playlist append put music here mp3 playl
  • 如何保持 python 3 脚本 (Bot) 运行

    不是母语英语 抱歉 英语可能很蹩脚 我也是编程新手 您好 我正在尝试使用 QueryServer 连接到 TeamSpeak 服务器来创建机器人 经过几天的努力 它有效 只有 1 个问题 而我却被这个问题困扰了 如果您需要检查 这是我正在使
  • Pip 突然使用了错误版本的 Python

    在 os x 上使用 pip 时遇到一个奇怪的问题 据我所知 快速查看我的 bash history 似乎可以确认 我最近没有对我的配置进行任何更改 唉 pip 命令似乎突然使用了与以前不同的 python 版本 到目前为止 我使用命令 p
  • Matplotlib 中的 TwoSlopeNorm 未按预期工作

    我正在尝试创建一个具有发散颜色图的绘图 该颜色图在零附近不对称 In this https stackoverflow com a 20146989 6288682例如 DivergingNorm函数被使用并产生我想要的 然而 我使用的是更

随机推荐

  • 嵌入 Firebird 和 Entity Framework 6 时出现“未知数据类型”错误

    我使用的是嵌入式 Firebird 数据库 代码优先 实体框架 6 应用程序第一次运行时 它工作正常 创建数据库并插入数据 但此后每次运行时都会抛出以下异常 发生 System NotSupportedException 类型的异常 Fir
  • 为什么它停止并以退出代码 11 结束?

    我不知道为什么它停在那里并以退出代码 11 结束 它应该一直运行直到我发出命令 include
  • 根据 json 值路由到不同的操作

    我想根据特定 json 参数的值将请求路由到不同的操作 例如 给定以下 json 数据 type type1 type1data type1value and type type2 type2data type2value 我希望能够在我的
  • android AlarmManager 无法唤醒手机

    我想要在某个时间显示一个活动 为此 我使用 AlarmManager 当设备唤醒时它可以正常工作 但如果设备处于睡眠状态则不会唤醒它 我设置闹钟的代码 Calendar alarmTime Calendar getInstance alar
  • 为什么不评估 && 运算符的右侧? [复制]

    这个问题在这里已经有答案了 小疑问 为什么下面代码的输出是1 为什么不3 int i 0 boolean t true f false b b t i 0 b f i 2 gt 0 System out println i 条件与运算符 是
  • 在 MVC6 中创建自定义模型绑定器的正确方法是什么?

    我正在尝试按照中的步骤操作本文使用 vNext 项目和 mvc 6 我一直在阅读代码here但仍然有点不确定如何实现这一点 有没有人有一个可以分享的可行示例或为我指明正确的方向 我特别想知道如何注册自定义绑定器 以及我将从哪些类继承 因为
  • 具有不同数据类型答案的调查的 SQL 设计

    我正在开展一项在线调查 大多数问题的答案等级为 1 5 如果我们需要向调查添加问题 我会使用一个简单的 Web 表单 该表单会插入到相应的表中 瞧 调查提出了新问题 没有新代码或对数据库结构进行更改 我们被要求添加可以有不同数据类型答案的调
  • 如何保存Jenkins配置?

    有没有办法在 Git 或其他任何地方保存管道配置或项目配置 以便当我的 Jenkins 机器崩溃时 我可以将保存的配置迁移到新的 Jenkins 实例中 我会 作为开始 让自己 https wiki jenkins io display J
  • 有没有一个库可以模拟 facebook 的“Link Detect”? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在寻找编写一个库 可以
  • 寻找有 2 个点的向量

    我正在帮助我的朋友玩 pygame 但我们被困住了 所以我们正在尝试获取射弹的方向 但我们不知道如何获取 例如 1 1 将走向东南 1 1 将走向 NE 1 1 将走向西北 和 1 1 将去 SW 我们需要某种方程来获取玩家位置和鼠标位置并
  • 从 Google Assistant 启动我的应用程序(如果有)

    要求是如果用户命令 GA 启动我的 Android 应用程序查找附近的麦当劳餐厅其中 McDonald 是应用程序名称 由于用户没有提及他 她想要在 McDonald 应用程序中进行搜索 因此应用程序无法使用定义的意图过滤器来处理明确的意图
  • NSTimer 不会失效

    我在使计时器失效时遇到问题 property nonatomic strong NSTimer timer 在成功的块内 我在主线程上分配和设置计时器 dispatch async dispatch get main queue self
  • Mongoose(或 MongoDB)中的 TransientTransactionError 是什么?

    I have server js and db js The db js文件使用 Mongoose 与我的数据库交互 我使用server js从中调用函数db js var mongoose require mongoose mongoos
  • Cassandra Datastax 驱动程序在访问器上设置分页状态

    我正在使用 Datastax 可爱的 cassandra java 驱动程序 我试图将所有查询字符串封装到内置访问器中以进行映射 但我需要能够设置查询的分页状态 我发现这可以通过普通的语句 SimpleStatement 实现 但我还没有找
  • 如何以Google方式隐藏库源代码?

    例如 我有一个library我想保护源代码不被查看 我想到的第一个方法是为私有函数创建公共包装器 如下所示 function executeMyCoolFunction param1 param2 param3 return execute
  • 如何在xslt中提取这种格式

    我有一个 xml 结构
  • Bash 故障排除:不是有效的标识符

    初学者试图让管道在 bash 中工作 如果有人能明白为什么当我运行以下命令时我会得到 bash i not a valid identifier 这真的很有帮助 另外如果还有其他错误请告诉我 for i in home regionstex
  • Postgres 9.4 Django 1.9 获取所有 json 键

    我在 django 模型中有一个 JSONField 如下所示 from django db import models from django contrib postgres fields import JSONField class
  • JBoss / HotSpot JVM 崩溃

    我们有一个基于 Jboss 构建的 Web 应用程序 已经投入生产多年 在过去的 18 个月里 它从未下降过 然而 最近两天 jvm崩溃了4次 当 JVM 崩溃时 我们会收到一份我正在努力解读的错误报告 我看过其他几个崩溃报告 在这个网站和
  • Keras 中的自定义损失函数

    我正在研究一种图像类增量分类器方法 使用 CNN 作为特征提取器和全连接块进行分类 首先 我对 VGG 训练网络进行了微调以完成新任务 一旦网络针对新任务进行了训练 我就会为每个类别存储一些示例 以避免忘记新类别何时可用 当某些类可用时 我