gpt4 book ai didi

Tensorflow 对象检测——增加批量大小会导致失败

转载 作者:行者123 更新时间:2023-12-03 08:49:13 26 4
gpt4 key购买 nike

我一直在尝试使用tensorflow对象检测API来训练对象检测模型。

batch_size为1时,网络训练得很好。但是,增加batch_size会在一些步骤后导致以下错误。

网络:Faster RCNN

train_config: {
batch_size: 1
optimizer {
momentum_optimizer: {
learning_rate: {
manual_step_learning_rate {
initial_learning_rate: 0.0002
schedule {
step: 25000
learning_rate: .00002
}
schedule {
step: 50000
learning_rate: .000002
}
}
}
momentum_optimizer_value: 0.9
}
use_moving_average: false
}

错误:

INFO:tensorflow:Error reported to Coordinator: , ConcatOp : Dimensions of inputs should match: shape[0] = [1,841,600,3] vs. shape[3] = [1,776,600,3]
[[node concat (defined at /home/<>/.virtualenvs/dl4cv/lib/python3.6/site-packages/object_detection-0.1-py3.6.egg/object_detection/legacy/trainer.py:190) ]]
Errors may have originated from an input operation.
Input Source operations connected to node concat:
Preprocessor_3/sub (defined at /home/<>/.virtualenvs/dl4cv/lib/python3.6/site-packages/object_detection-0.1-py3.6.egg/object_detection/models/faster_rcnn_inception_v2_feature_extractor.py:100)

但是,增加batch_size的训练适用于SSD mobilenet
同时,我目前已经解决了我的用例的问题,将这个问题发布在 SO 中以了解这种行为的原因。

最佳答案

您收到错误的原因是因为您无法在技术上在单个 GPU 上以批处理模式训练 Faster RCNN。这是由于其两阶段架构。 SSD 是单阶段的,因此可以并行化以提供更大的批量大小。如果您仍然想训练批量大小 >1 的 F-RCNN,则可以使用多个 GPU 来实现。您需要将 --num_clones 参数设置为可用的 GPU 数量。设置 num_clones 和批量大小来保存值(它应该等于您可用的 GPU 数量)我在我的应用程序中使用了 4,8 和 16 的批量大小。--num_clones=2 --ps_tasks=1检查此链接了解更多详细信息 https://github.com/tensorflow/models/issues/1744

关于Tensorflow 对象检测——增加批量大小会导致失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59958146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com