是否可以在Tensorflow对象检测API中更改损失?

时间:2019-11-20 01:34:56

标签: tensorflow deep-learning object-detection-api

我想将对象检测的丢失更改为某些对象检测(例如SSD),

Q1:我想知道在哪里修改SSD的损耗函数,

Q2:是否可以通过定义损失对数据集中的ssd_mobilenet进行微调?是好的还是必须使用我的损失功能从头开始训练ssd_mobile?

2 个答案:

答案 0 :(得分:0)

第一季度: 如果您使用的是object detection api,那么将使用一个配置来定义网络和损耗,例如:

https://github.com/tensorflow/models/tree/master/research/object_detection/samples/configs

看看基本的ssd mobilenet config,您应该看到它正在使用的损耗,包括分类损耗和本地化损耗。您可以查看其他配置以查看其他损失选项,也可以查看源代码以获得完整的选项列表,甚至可以修改源代码以添加自己的损失。

第二季度: 当然可以,但是您需要深入研究对象检测api的工作原理,对其进行修改以添加损失函数并在数据集上进行训练。这将比您预期的要多。对于您的数据集或指标一无所知,我希望您经过微调的结果能够比从头开始的结果更快收敛,并给出可比的结果。

答案 1 :(得分:0)

您可以在配置文件中更改丢失功能,如链接-https://github.com/tensorflow/models/blob/master/research/object_detection/samples/configs/ssd_mobilenet_v1_coco.config中的第198行,这样做将大大降低性能,如果您重新训练网络性能可能会有所改善。

如果您可以更清晰地阐述目标,建议解决方案将很有帮助。