vgg16从头训练loss不变的解决方法

在从头训练VGG16模型时,可能会遇到loss保持不变的问题,如二分类时loss始终为0.69,四分类时为1.386。这可能是权重初始化为NaN,导致通过全连接层后各分类概率相同。解决方法是将权重初始化方式改为‘xavier’,以促进模型收敛。参考了多个资料和讨论,包括GitHub上的问题和StackOverflow解答。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
从头开始训练,会碰上loss=-ln(类别数)的情况,例如二分类问题loss恒等于0.69,四分类分体loss恒等于1.386推测是由于权重变成NaN之后通过fc变成相同的数导致最终每类的概率相同。
将参数的“gaussian”初始方式 修改为“xavier”, 否则训练的时候可能不会收敛。参数的初始化方式很重要。

convolution_param {  
   num_output: 64  
   pad: 1  
   kernel_size: 3  
   weight_filler {  
     type: "xavier"  //将每个weight_filler处的gaussian修改成xavier
   } 

参考文献:

  1. https://github.com/NVIDIA/DIGITS/issues/159#issuecomment-247707549
  2. https://github.com/NVIDIA/DIGITS/issues/535
  3. https://stackoverflow.com/questions/42652903/caffe-net-not-converging-when-replacing-a
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值