Keras:模型准确率在达到 99% 准确率后下降,损失为 0.01

2024-04-19

我正在 keras 中使用改编的 LeNet 模型来进行二元分类。我有大约 250,000 个训练样本,比率为 60/40。我的模型训练得很好。第一个 epoch 的准确率达到 97%,损失为 0.07。 10 个 epoch 后,准确率超过 99%,损失为 0.01。当模型改进时,我使用 CheckPointer 来保存模型。

在第 11 个 epoch 左右,准确率下降到 55% 左右,损失约为 6。这怎么可能?是因为模型无法变得更准确并且它试图找到更好的权重但完全失败了吗?

我的模型是 LeNet 模型的改编版:

lenet_model = models.Sequential()
lenet_model.add(Convolution2D(filters=filt_size, kernel_size=(kern_size, kern_size), padding='valid',\
                        input_shape=input_shape))
lenet_model.add(Activation('relu'))
lenet_model.add(BatchNormalization())
lenet_model.add(MaxPooling2D(pool_size=(maxpool_size, maxpool_size)))
lenet_model.add(Convolution2D(filters=64, kernel_size=(kern_size, kern_size), padding='valid'))
lenet_model.add(Activation('relu'))
lenet_model.add(BatchNormalization())
lenet_model.add(MaxPooling2D(pool_size=(maxpool_size, maxpool_size)))
lenet_model.add(Convolution2D(filters=128, kernel_size=(kern_size, kern_size), padding='valid'))
lenet_model.add(Activation('relu'))
lenet_model.add(BatchNormalization())
lenet_model.add(MaxPooling2D(pool_size=(maxpool_size, maxpool_size)))
lenet_model.add(Flatten())
lenet_model.add(Dense(1024, kernel_initializer='uniform'))
lenet_model.add(Activation('relu'))
lenet_model.add(Dense(512, kernel_initializer='uniform'))
lenet_model.add(Activation('relu'))
lenet_model.add(Dropout(0.2))
lenet_model.add(Dense(n_classes, kernel_initializer='uniform'))
lenet_model.add(Activation('softmax'))

lenet_model.compile(loss='binary_crossentropy', optimizer=Adam(), metrics=['accuracy'])

问题在于应用binary_crossentropy损失,而在这种情况下categorical_crossentropy应该应用。另一种方法是离开binary_crossentropy损失但改变输出有dim=1并激活sigmoid。奇怪的行为来自于这样一个事实binary_crossentropy实际上解决了多类二元分类(具有两个类),而您的任务是单类二元分类。

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

Keras:模型准确率在达到 99% 准确率后下降,损失为 0.01 的相关文章

  • 如何使用固定的 pandas 数据框进行动态 matplotlib 绘图?

    我有一个名为的数据框benchmark returns and strategy returns 两者具有相同的时间跨度 我想找到一种方法以漂亮的动画风格绘制数据点 以便它显示逐渐加载的所有点 我知道有一个matplotlib animat
  • 如何生成给定范围内的回文数列表?

    假设范围是 1 X 120 这是我尝试过的 gt gt gt def isPalindrome s check if a number is a Palindrome s str s return s s 1 gt gt gt def ge
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • SQL Alchemy 中的 NULL 安全不等式比较?

    目前 我知道如何表达 NULL 安全的唯一方法 SQL Alchemy 中的比较 其中与 NULL 条目的比较计算结果为 True 而不是 NULL 是 or field None field value 有没有办法在 SQL Alchem
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • 从 scikit-learn 导入 make_blobs [重复]

    这个问题在这里已经有答案了 我收到下一个警告 D Programming Python ML venv lib site packages sklearn utils deprecation py 77 DeprecationWarning
  • keras加载模型错误尝试将包含17层的权重文件加载到0层的模型中

    我目前正在使用 keras 开发 vgg16 模型 我用我的一些图层微调 vgg 模型 拟合我的模型 训练 后 我保存我的模型model save name h5 可以毫无问题地保存 但是 当我尝试使用以下命令重新加载模型时load mod
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • Python - 在窗口最小化或隐藏时使用 pywinauto 控制窗口

    我正在尝试做的事情 我正在尝试使用 pywinauto 在 python 中创建一个脚本 以在后台自动安装 notepad 隐藏或最小化 notepad 只是一个示例 因为我将编辑它以与其他软件一起使用 Problem 问题是我想在安装程序
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • Python 3 中“map”类型的对象没有 len()

    我在使用 Python 3 时遇到问题 我得到了 Python 2 7 代码 目前我正在尝试更新它 我收到错误 类型错误 map 类型的对象没有 len 在这部分 str len seed candidates 在我像这样初始化它之前 se
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望
  • 使用基于正则表达式的部分匹配来选择 Pandas 数据帧的子数据帧

    我有一个 Pandas 数据框 它有两列 一列 进程参数 列 包含字符串 另一列 值 列 包含相应的浮点值 我需要过滤出部分匹配列 过程参数 中的一组键的子数据帧 并提取与这些键匹配的数据帧的两列 df pd DataFrame Proce
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data

随机推荐

  • 如何在swift 2中通过短信发送验证码

    我为我的应用程序构建了一个注册表单 我需要通过短信向用户发送验证码才能完成注册过程 我尝试使用 MFMessageComposeViewController 但它打开设备上的对话框短信 以便用户可以看到代码 我还检查了网络上是否有发送短信的
  • Django 中 DateTimeField 的过期逻辑

    我在服务模型中有一个 DateTimeField 定义如下 pub date models DateTimeField default timezone now blank True 我想在我的代码中创建一些过期逻辑 以便超过 2 个月的服
  • 有没有办法在运行时找到 PackageFamilyName?

    有没有办法在运行时找出 PackageFamilyName 如清单中所示 我查看了 Program Files WindowsApps 但找不到相关的字符串 找不到任何 API 可以让我这样做 欢迎任何其他想法 我想你正在寻找的是包 ID
  • Discord.py:wait_for('reaction_add')未按预期工作

    我正在尝试在discord py 上制作一个常见问题解答机器人 到目前为止进展顺利 我想添加一个额外的功能 当机器人检测到常见问题解答时 机器人不会直接发送答案 而是会发送一条提示消息 其中包含两种反应 竖起大拇指和竖起大拇指 具体取决于所
  • 错误:“defaultfloat”不是“std”的成员

    std defaultfloat尽管在 GCC 中似乎没有定义在标准中 http www cplusplus com reference ios defaultfloat 我认为是 27 5 6 4 我将其隔离为这个简单的程序 test c
  • FirebaseInstanceId 不再存在

    我刚刚升级了所有 Firebase 依赖项 但遇到了问题 FirebaseInstanceId不再被认可 我用它来获取令牌 id 如下所示 String tokenId FirebaseInstanceId getInstance getT
  • Mercurial 工作流程是否可以通过未提交的更改进行更新?

    因此 我的网站从 CVS 切换到 Mercurial 我遇到的最大问题是 如果我正在处理一些我不想提交的文件 我只需保存它们 然后我还有其他文件想要推送到服务器 但是如果其他人已经制作了对存储库进行更改 然后我将它们拉下来 它要求我合并或变
  • 如何在flutter中显示base64格式的pdf?

    我有 base64 格式的 pdf 内容 我需要在 flutter 应用程序的容器中显示它 我正在尝试使用 dart 中的图像 pdf 和转换包来完成此操作 但我收到图像类错误 并且我不知道如何显示图像 List
  • Android后台服务判断前台应用程序

    我正在开发一个应用程序 可以监控全天的手机使用情况 为此 我有一个后台服务 该服务在设备启动时启动 并不断轮询以找出当前的前台应用程序是什么 当我单击一个应用程序然后退出并单击另一个应用程序时 以下代码将起作用 现在假设我打开浏览器并转到另
  • 多个进程可以共享一个 CUDA 上下文吗?

    这个问题是 Jason R 的后续问题comment https stackoverflow com questions 29964392 multiple cuda contexts for one device any sense co
  • 使用一个控件将两个 Twitter Bootstrap 轮播链接在一起

    我刚刚学习 javascript 所以请耐心等待 我正在尝试使用相同的控件在引导程序中启动两个轮播 按照目前的设置方式 包含轮播 ID 的 href 标签控制着每个轮播 有人对如何使用相同的控件以最少的修改将两者链接在一起有建议吗 这是 H
  • 如何记录 Java Record 参数?

    应该如何记录Java记录 https openjdk java net jeps 359参数 我指的是最终成为构造函数参数 类字段的参数 I tried param name the name of the animal param age
  • Log4j 2 创建记录器时挂起

    我有这个简单的程序 package myPackage import org apache logging log4j Logger import org apache logging log4j LogManager public cla
  • 如何不使用 Do 符号来书写

    我正在研究可组合的失败 并设法编写了一个具有签名的函数 getPerson IO Maybe Person 其中一个人是 data Person Person String Int deriving Show 它有效 我将其写在 do 符号
  • 为什么Android中的Sleep首先执行,而不是上面的代码?

    为什么首先执行 try 块 我希望颜色先改变 然后它应该休眠 5000 毫秒 我的意思是系统在颜色改变之前休眠 私有 OnClickListener CheckAnswer new OnClickListener public void o
  • ViewModel 是否能在 Activity 保存和恢复中幸存?

    新的实例ViewModel如果按以下方式使用 类可以在配置更改中幸存 mViewModel ViewModelProviders of this get MyViewModel class 然而 除了配置更改之外 当整个应用程序的进程被杀死
  • .htaccess 中的 RewriteRule 在 app.yaml 文件中转换为什么?

    我该如何转换这个 htaccess文件到app yaml file 这里是 htaccess file RewriteEngine On RewriteCond REQUEST FILENAME f RewriteRule public i
  • Java 7 中是否有针对 ImmutableEnumSet 的计划?

    我希望拥有 EnumSet 的所有效率并传递它 而不用担心有人会修改它 您可以使用 Google 集合 Guava 获得不可变的 EnumSet 资源 番石榴主页 http code google com p guava libraries
  • Python 记录类型错误

    你能帮帮我吗 出了什么问题 import logging if name main logging basicConfig format asctime s levelname s module s funcName s message s
  • Keras:模型准确率在达到 99% 准确率后下降,损失为 0.01

    我正在 keras 中使用改编的 LeNet 模型来进行二元分类 我有大约 250 000 个训练样本 比率为 60 40 我的模型训练得很好 第一个 epoch 的准确率达到 97 损失为 0 07 10 个 epoch 后 准确率超过