【发布时间】:2020-04-26 14:24:08
【问题描述】:
我使用 resnet50 作为主干训练了一个 回归 网络。网络的输入是尺寸为224*224*3的图像,网络的输出是一个值,从 0 到 1。
但是网络不能收敛,无论我使用 sigmoid 还是 relu 作为输出层的激活。 mae 或 mse 作为 损失函数。
例如,我使用 resnet50 作为主干,mae 作为损失函数,sigmoid 是输出层的激活函数。 SGD 作为优化器。训练损失为:
Epoch 1 training loss is 0.4900, val_loss is 0.4797
Epoch 2 training loss is 0.4923, val_loss is 0.4794
Epoch 3 training loss is 0.4923, val_loss is 0.4783
...
Epoch 35 training loss is 0.4923, val_loss is 0.4771
训练损失不会改变,它是常数 0.4923。 val_loss 始终约为 0.47。我测试了不同的优化器,学习率。网络还没有收敛。
当我使用 VGG16 或 Mobilenet 作为骨干网时,网络融合了。 谁能给我一些关于如何解决这个问题的建议。
【问题讨论】:
-
首先将损失函数改为二元交叉熵而不是mae。我想你的输出是概率,如果可能的话,你能告诉我们它们在现实中代表什么吗?我认为它们是图像中出现事件的概率。
标签: deep-learning resnet vgg-net