记录Pytorch中遇到的问题

这篇博客整理了Pytorch在训练模型时遇到的各种问题及解决方案,包括训练与验证精度差异、损失值异常、模型转换、数据加载错误、优化器报错等,并给出了具体的解决步骤和代码示例。

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

突然发现之前遇到的问题是容易反复遇到的,那就随手做一个整理吧~

1. 在feature层到classifier层中,若出现如下错误:

在这里插入图片描述

  • 则需要改变FC层的入口参数,如此图中可以改为:
x = x.view(out.size(0), -1)
self.linear = nn.Linear(320, 10) # 320为入口参数
2. 训练中training accuracy有变化,但test accuracy始终为10%(图片分类):
  • 可能是由于learning rate太大导致的,如lr=0.1。可能是由于learning rate太大导致的,如lr=0.1。
  • 尝试加入BN层之后优化效果明显,loss不再上下跳动,开始下降。
3.Loss过大,大到几十Billion

在这里插入图片描述
最后发现是构建网络的时候忘记加激活函数了,常用的有ReLU和Sigmoid函数。不加的话将是一个线性的网络。

4.准确率突然跳水到某一固定值

调小lr,试试1e-5.考虑这个问题是由于梯度爆炸引起的,但尚未确定,改动weight_decay未产生明显影响。

5.model出现sizes must be non-negative报错

在这里插入图片描述
应该计算一下图的大小,可能是图的大小不足以支持convolution的操作了,需要改变conv参数,增加padding等。

6. loss下降,但test acc几乎不变化
  • 调整学习率,可能是由于学习率过大导致
  • 尝试更换更复杂的模型,以确定程序本身没有问题
7. Caffe转Pytorch中,bn+scale层=bn层,
class torch.nn.BatchNorm2d(num_features, eps=1e-05, momentum&
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值