目前,我正努力使用在自己的数据集中训练的 deeplabV3 + 来改善语义分割问题的结果。 我已经使用来自模型动物园的不同预训练模型(已经完全基于 xception_65 )成功地训练了 deeplabV3 + 几次,但是我的结果始终保持在相同的 miou < / strong>范围内,在此间隔 [10,11] 附近。 我只有一个拥有11GB GPU内存的GPU。 我的数据集有 8个类,对象大小各不相同,从小到大,并且非常不平衡。 标签的权重如下:[1、4、4、17、42、36、19、20]。 在我的数据集中,我有 757 个实例用于培训和 100 验证。
训练时的总体趋势是:前10k次迭代,我的损失减少了,但随后又开始振荡。
我尝试过:
调整诸如学习率,last_layer_gradient_multiplier,权重衰减之类的参数
各种图像尺寸的训练 321、513、769
使用此公式中的上述权重进行某种加权
权重= tf.to_float(tf.equal(scaled_labels,0))* 1 + tf.to_float(tf.equal(scaled_labels,1))* 4 + tf.to_float(tf.equal(scaled_labels,2))* 4 + tf.to_float(tf.equal(scaled_labels,3))* 17 + tf.to_float(tf.equal(scaled_labels,4))* 42 + tf.to_float(tf.equal(scaled_labels,5))* 36 + tf.to_float(tf.equal(scaled_labels,6))* 19 + tf.to_float(tf.equal(scaled_labels,7))* 20 + tf.to_float(tf.equal(scaled_labels,ignore_label))* 0.0
我训练时没有微调批处理标准化参数( fine_tune_batch_norm = False )。尽管我也尝试过以321作物大小训练那些参数( fine_tune_batch_norm = True ),以便能够适应批量大小我的GPU中strong> 12 。
重点是我需要一些提示来弄清楚我可以做什么以改善这些结果。 你们有什么感想?我是否需要更多数据以增加我的miou或硬件?