【发布时间】:2018-04-15 06:28:49
【问题描述】:
这是一个三部分的问题
1) 类大小 - 我正在 5 个类上训练 TF 对象检测 API,这些类的大小并不接近:
- 没有。 class1 中的图像数:401
- 没有。 class2 中的图像数:389
- 没有。 class3 中的图像数:532
- 没有。 class4 中的图像数:159393
- 没有。第 5 类中的图像:185313
(总计
这不是训练一个典型的图像分类器,所以我猜这不是真正的类不平衡问题,但我想知道它是否会影响结果模型
2) TF 对象检测 API 是否可以用于检测两个对象,其中 1 被另一个包围/包围?
例如。 face vs person - 脸在人的范围内
3) 这是continuation,我发现使用 Faster RCNN 意味着必须将 batch_size 设置为 1。
因此,我不确定这是否意味着我必须在训练期间等待全局步骤以匹配训练集中的图像数量(我的自定义数据集中大约 340k)。我在具有 4 个 vCPU 和 15gig RAM 的 Google 计算上使用具有 12 GB 内存的 Tesla k80 GPU。大约 2 天后,我看到损失远低于 1:
INFO:tensorflow:global step 264250: loss = 0.2799 (0.755 sec/step)
INFO:tensorflow:global step 264251: loss = 0.0271 (0.787 sec/step)
INFO:tensorflow:global step 264252: loss = 0.1122 (0.677 sec/step)
INFO:tensorflow:global step 264253: loss = 0.1709 (0.797 sec/step)
INFO:tensorflow:global step 264254: loss = 0.8366 (0.790 sec/step)
INFO:tensorflow:global step 264255: loss = 0.0541 (0.741 sec/step)
INFO:tensorflow:global step 264256: loss = 0.0760 (0.781 sec/step)
INFO:tensorflow:global step 264257: loss = 0.0621 (0.777 sec/step)
如何确定何时停止?直到这里我才注意到,我从最新的检查点文件生成的冻结推理图似乎只检测到具有最多图像(即面部)的类,并且没有检测到其他任何东西。
【问题讨论】:
-
您是从头开始训练还是使用预训练模型?
标签: tensorflow keras object-detection