班级失衡严重的训练

2023-12-09

这是一个由三部分组成的问题

1) 类大小 - 我正在 5 个类上训练 TF 对象检测 API,其中大小彼此并不接近:

  1. 第1类图像数量:401
  2. 第2类图像数量:389
  3. 第3类图像数量:532
  4. 第4类图像数量:159393
  5. 第5类图像数量:185313

(total

这不是训练典型的图像分类器,所以我猜这并不是真正的类别不平衡问题,但我想知道它是否会影响结果模型

2) TF 对象检测 API 能否用于检测 1 被另一个包围/包围的两个对象?

前任。脸与人 - 脸在人的范围内

3)这是一个延续我发现使用 Faster RCNN 意味着 batch_size 必须设置为 1。

正因为如此,我不确定这是否意味着我必须在训练期间等待全局步骤来匹配训练集中的图像数量(我的自定义数据集中约为 340k)。我在 Google 计算上使用 Tesla k80 GPU(带 12 GB 内存),带 4 个 vCPU 和 15g RAM。大约 2 天后,我发现损失远低于 1:

信息:张量流:全局步骤264250:损失= 0.2799(0.755秒/步)

信息:张量流:全局步骤264251:损失= 0.0271(0.787秒/步)

信息:tensorflow:全局步骤264252:损失= 0.1122(0.677秒/步)

信息:张量流:全局步骤264253:损失= 0.1709(0.797秒/步)

信息:张量流:全局步骤264254:损失= 0.8366(0.790秒/步)

信息:张量流:全局步骤264255:损失= 0.0541(0.741秒/步)

信息:tensorflow:全局步骤264256:损失= 0.0760(0.781秒/步)

信息:张量流:全局步骤264257:损失= 0.0621(0.777秒/步)

如何确定何时停止?我注意到,直到这里,我从最新的检查点文件生成的冻结推理图似乎只检测到图像数量最多的类(即面部),并且没有检测到其他任何内容。


1)是的,它会以某种方式影响结果。更准确地说,您的模型将非常擅长识别 5 类和 4 类,并且它may对其他人有自己的想法。考虑将 [4, 5] 的实例数量限制为至少与其他类处于相同的数量级。这在开始时尤其有用,因此它可以平衡每个类别的表示。

这里也非常重要的是使用数据增强(参见这个答案).

3)通常,你的模型应该需要几个时期才能很好地训练,特别是当你有数据增强时。

这在 SO 和存储库中的问题上到处都有写:你无法知道它是否仅从损失值收敛!。考虑这种情况:你有shuffle: True对于您的输入图像,第 4 类和第 5 类中的 344,706 个图像。如果随机排列它们,使这些图像出现在来自类 [1,2,3] 的图像之前,那么您的模型到目前为止学到了一些很好的表示,但是当它遇到由于过度拟合,1 类图像会出现过冲。所以你的损失会跳到某个非常高的值。

解决方案是运行eval.py并行,因为这可以让您了解模型如何执行all类。当您对该指标感到满意时,您可以停止。


请注意,在 StackOverflow 上,如果问题涉及不同的主题,则提出单独的问题是正常的,因为我们不仅为您回答,也为您当前职位的所有未来人员回答。

所以我会用另一个答案来回答 2) :)

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

班级失衡严重的训练 的相关文章

随机推荐

  • 如何在 emacs 中关闭 vhdl 模式?

    我现在正在学习 emacs 并尝试编写一个简单的 vhdl 程序进行测试 我可以看到 vhdl 模式可能是一个有趣的功能 但我想知道如何暂时关闭它以及稍后如何重新激活它 使用命令M x 基本模式 那是 按下 并按住 meta键 通常是Alt
  • 访问由文件夹引用添加的 Swift 变量

    事实上 我在这个简单的问题上花了大约 3 个小时 并用 google 搜索了很多 但没有办法 我的问题很简单 我想将一个目录作为 文件夹引用 添加到我的 Swift xCode 项目中 但无法访问它们 我不需要添加然后使用组引用 有什么建议
  • 如何仅由单个用户发布 Facebook 用户墙/页面状态 不为其他用户安装应用程序

    我正在一个网站上工作 如果在该网站上发布了某些内容 我需要将页面链接从该网站发布到特殊的用户墙或页面 这意味着我只需要一个用户来发布该问题 我面临的问题是访问令牌 因为我不想在网站流量前面显示 Facebook 登录页面 它不像在用户墙上共
  • 如何让Maven下载特定依赖项的源代码和javadoc?

    我需要特定的依赖项文档 一些文档和源代码 告诉 Maven 这样做的最佳方法是什么 首先 IntelliJ 应该自动为您下载源代码 尽管有时您可能需要单击 下载源代码 这实际上使用 Maven 来获取源代码和 javadoc 如果您想使用
  • 角度路线开始和路线结束事件

    我如何访问路由开始和路由结束事件 我想在路由和加载数据时显示进度栏 有人能告诉我这是如何工作的吗 如果您更喜欢使用可观察的 import Router NavigationStart from angular router construc
  • 如何从电子表格编写 Google 表单脚本以根据答案转到特定页面?

    我已经成功创建了一个 Google 表单 该表单使用从此处改编的代码从电子表格填充 https www youtube com watch v BYA4URuWw0s 现在我想让表单根据上一个问题的答案转到一个特定的问题 而不失去从电子表格
  • 引起原因:java.net.NoRouteToHostException:没有到主机的路由

    我正在尝试在 openshift 上从 eclipse 部署我的 Jersey 项目 并且在尾部文件中收到此错误Caused by java net NoRouteToHostException No route to host 以前当我有
  • 如何在php中获取会议邀请电子邮件的回复

    我正在向用户的电子邮件发送日历会议邀请 当接收者接受邀请时 它会出现在接收者日历中 但我无法得到回复 有什么方法可以获得回复并在我的网站中使用它 在这种情况下 Google 服务帐户是完美的解决方案 在这种情况下 用户不需要任何 API 详
  • 如何将 Action Listener 设置为 3 个按钮

    我正在尝试制作一个带有三个按钮的秒表 开始 暂停 和 停止 我的老师只教我们如何将动作监听器设置为两个按钮 如何为三个按钮设置动作监听器 这是到目前为止我的编码 JButton startButton new JButton Start J
  • 获取当前进程中 JavaVM* 的所有实例?

    这仅特定于 Windows JNI 是否提供返回所有实例的 APIJavaVM 调用过程 考虑以下场景 将 C dll 注入到java exe过程 现在的问题是 C dll如何定位当前的实例JavaVM 在它运行的进程内 据我所知 所有 J
  • Django DRF ListField 反序列化 GET 查询参数中的 id 列表

    尝试使用 DRF 的 ListField 选项来反序列化查询参数中的值列表 下例中的应用程序 我很难让它发挥作用 在网上找不到示例 希望有人提供一些帮助 api getAppStats applications one two three
  • 如何从 Genymotion android 模拟器访问本地主机?

    我不知道如何从 Genymotion android 模拟器访问本地主机 顺便说一句 我正在使用 MAMP Update genymotion更新到2 2后你可以使用10 0 3 2 ref 另一种方法 要通过 Genymotion 访问本
  • SignalR、JQuery 和 Node

    在我目前正在进行的一个项目中 我们使用 Electron 作为主机 在 Electron 主进程 这是一个普通的 Node 进程 中 我们需要连接到具有 SignalR 端点的下游后端 然而 由于 SignalR 是一个 JQuery 模块
  • 为什么这两个变量 `${ "_<$filename" }` 和 `${ "::_<$filename" }` 不相等?

    这个问题与this one 你说这两个是一样的 lt filename Not allowed under strict lt filename In main package Not allowed under strict 但接下来怎么
  • Firefox 过渡不起作用

    这是我的 CSS 设置 element1 element2 webkit transition left 0 3s moz transition left 0 3s o transition left 0 3s transition lef
  • 存储用户对象时避免使用 db.UserProperty()

    编辑 2014 年 8 月 1 日 截至本次编辑时 我意识到主题属性db UserProperty 至少从 ndb 数据存储中删除 好的 所以 有 db UserProperty 模型类存储电子邮件地址 按 Unicode 顺序 它与仅存储
  • 改变图例的顺序以实现多种美学

    又一个 传奇 问题 我有几种美学 并希望指定每种美学的图例的绘制顺序 大多数主题都是关于更改项目的顺序within审美 但这不是我的问题 在我的示例中 我想指定填充图例的位置 有趣的是 颜色图例绘制在填充图例的顶部 但是当在底部绘制图例时
  • 过滤pandas数据框列时如何使用.le()和.ge()?

    这是一个 pandas DataFrame 示例 import pandas as pd import numpy as np data first column item1 item2 item3 item4 item5 item6 it
  • TYPO3 - 如何禁用页面上特定内容元素的缓存?

    是否可以禁用页面上某一特定元素的缓存 我已经尝试过以下打字稿 如中所述这个答案 但它对我不起作用 TYPO3 v8 tt content textmedia 20 USER INT 我在用ext fluid styled content使用
  • 班级失衡严重的训练

    这是一个由三部分组成的问题 1 类大小 我正在 5 个类上训练 TF 对象检测 API 其中大小彼此并不接近 第1类图像数量 401 第2类图像数量 389 第3类图像数量 532 第4类图像数量 159393 第5类图像数量 185313