Deep learning Resnet50不收敛。VGG16工作正常

Deep learning Resnet50不收敛。VGG16工作正常,deep-learning,resnet,vgg-net,Deep Learning,Resnet,Vgg Net,我用resnet50作为主干训练了一个回归网络。网络的输入是大小为224*224*3的图像,网络的输出是一个值,从0到1不等 但是netwrok不能收敛,无论我使用sigmoid还是relu作为输出层的激活mae或mse作为损失函数 例如,我使用resnet50作为主干,mae作为损失函数,sigmoid是输出层的激活函数SGD作为优化器。培训损失将是: Epoch 1训练损失为0.4900,val_损失为0.4797 Epoch 2训练损失为0.4923,val_损失为0.4794 Epoch

我用resnet50作为主干训练了一个回归网络。网络的输入是大小为224*224*3的图像,网络的输出是一个值,从01不等

但是netwrok不能收敛,无论我使用sigmoid还是relu作为输出层的激活maemse作为损失函数

例如,我使用resnet50作为主干,mae作为损失函数,sigmoid是输出层的激活函数SGD作为优化器。培训损失将是:

Epoch 1训练损失为0.4900,val_损失为0.4797

Epoch 2训练损失为0.4923,val_损失为0.4794

Epoch 3训练损失为0.4923,val_损失为0.4783

Epoch 35训练损失为0.4923,val_损失为0.4771

训练损失不会改变,它是恒定的0.4923。val_损失始终在0.47左右。我测试了不同的优化器学习率。网络仍然没有融合

当我使用VGG16Mobilenet作为主干时,网络聚合。
谁能给我一些关于如何解决这个问题的建议

您能否以某种方式验证Resnet50主干网是否正确实现。也许试着在MNIST上训练它,看看它是否能正常工作

在我看来,ResNet varaint只是输出一些平均值,而不是学习实际问题


你能提供一些关于你想要实现什么的更多信息吗。您的回归是什么样子的,以及希望从主干中得到什么输入。此外,您可能还想看看类似的工作(如果存在的话),了解他们使用的架构和超参数。

首先将损失函数改为二进制交叉熵,而不是mae。我想你的输出是概率,如果可能的话,你能告诉我们它们在现实中代表什么吗。我推测它们是图像中某个事件存在的概率。resnet50在keras中是预定义的。我输入一幅图像,网络的输出是一个点的坐标。e、 g.坐标x和y。x和y都重新缩放为0-1。例如,输入img1.jpg,输出将是point1(coor_x,coor_y)。实际上,输出有两个神经元。@shc你确定你用VGG16和MobileNet完成了这项任务吗?通常,如果你用它们完成这项任务,它们不会给你带来好结果。我不久前做了一些非常类似的事情。我用了一些VGG启发的架构。我记得我试过一些具有不同LR、不同损失函数和激活的优化器。最后,唯一对我有效的设置是SGD optimizer、MSE loss、所有层的relu激活,最后一层有sigmoid。您还可以尝试使用一个小子集(10张图像或其他什么)进行训练,看看网络是否能够过度适应,检查网络是否能够从那里学习和尝试。@othmanmarfoq是的,当我将输出的激活功能设置为“线性”时,resnet50起作用。谢谢