【发布时间】:2020-01-28 22:37:47
【问题描述】:
我一直在尝试使用 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 报告给 Coordinator: , ConcatOp : 输入的维度应该匹配:shape[0] = [1,841,600,3] 与 shape[3] = [1,776,600,3]
[[节点连接(定义在/home//.virtualenvs/dl4cv/lib/python3.6/site-packages/object_detection-0.1-py3.6.egg/object_detection/legacy/trainer.py:190)]]
错误可能源于输入操作。
连接到节点 concat 的输入源操作:
Preprocessor_3/sub(定义在 /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 中发布了这个问题以了解这种行为的原因。
【问题讨论】:
标签: tensorflow deep-learning object-detection-api transfer-learning pre-trained-model