使用yolo训练时Loss变为nan[解决思路]

简介: 使用yolo训练时Loss变为nan[解决思路]

首先参考这篇文章:

原创|使用caffe训练时Loss变为nan的原因

  • 梯度爆炸
  • 不当的损失函数
  • 不当的输入
  • 池化层中步长比核的尺寸大

检查自己的train.py:

  1. 检查代码(正确)
  2. 检查输入(自己之前调试的时候修改了图片预处理的一个函数get_random_data)将random=False改成random=True后就可以了


AIEarth是一个由众多领域内专家博主共同打造的学术平台,旨在建设一个拥抱智慧未来的学术殿堂!【平台地址:https://devpress.csdn.net/aiearth】 很高兴认识你!加入我们共同进步!

目录
相关文章
|
8月前
|
机器学习/深度学习
大模型训练loss突刺原因和解决办法
【1月更文挑战第19天】大模型训练loss突刺原因和解决办法
1177 1
大模型训练loss突刺原因和解决办法
|
6月前
|
机器学习/深度学习 数据采集 监控
算法金 | DL 骚操作扫盲,神经网络设计与选择、参数初始化与优化、学习率调整与正则化、Loss Function、Bad Gradient
**神经网络与AI学习概览** - 探讨神经网络设计,包括MLP、RNN、CNN,激活函数如ReLU,以及隐藏层设计,强调网络结构与任务匹配。 - 参数初始化与优化涉及Xavier/He初始化,权重和偏置初始化,优化算法如SGD、Adam,针对不同场景选择。 - 学习率调整与正则化,如动态学习率、L1/L2正则化、早停法和Dropout,以改善训练和泛化。
55 0
算法金 | DL 骚操作扫盲,神经网络设计与选择、参数初始化与优化、学习率调整与正则化、Loss Function、Bad Gradient
|
8月前
|
机器学习/深度学习
深度学习网络训练,Loss出现Nan的解决办法
深度学习网络训练,Loss出现Nan的解决办法
651 0
|
机器学习/深度学习 存储 缓存
随机YOLO|你用的YOLO在Dataset Shift时是否依旧鲁棒?这个策略可能是你想要的!!!
随机YOLO|你用的YOLO在Dataset Shift时是否依旧鲁棒?这个策略可能是你想要的!!!
208 0
|
机器学习/深度学习 PyTorch Serverless
假设测试数据集test_data为随机生成的,并设置小批次。model神经网络已经训练好了,怎么用MSE来做测试
其中,model表示已经训练好的PyTorch模型,torch.rand()函数用于生成测试数据集,torch.split()函数用于将测试数据集分成小批次,model(batch)用于对小批次的输入数据进行预测,torch.cat()函数用于将所有小批次的预测值拼接在一起,最后使用mean_squared_error()函数计算均方误差。注意,在计算均方误差之前,需要将测试数据集和预测值转换为NumPy数组并将它们从GPU中移动到CPU上。
171 0
|
索引
每次迭代,打印当前小批量的每个样本的梯度
对于每个迭代,打印每个样本的梯度是可行的,但是通常不是一个好的做法,因为随着训练样本数量的增加,打印每个样本的梯度将变得非常耗时。 如果您仍然想打印每个样本的梯度,可以按照以下步骤进行: 1. 在训练循环中,使用 enumerate() 函数迭代数据集中的每个批次,并获取每个批次的索引和数据。 2. 在每个批次中,将数据传递到模型中,并计算梯度。然后,您可以使用 grad 属性获取每个样本的梯度,并将其打印出来。 3. 将所有批次的梯度合并为一个大梯度,并使用此梯度更新模型的参数。
305 0
|
索引
在训练模型每次迭代中,打印参数的梯度
要打印出每个迭代中的所有样本梯度,您需要在代码中进行相应的更改。以下是一个示例过程,可以帮助您实现此目标: 1. 在训练循环中,使用 enumerate() 函数迭代数据集中的每个批次,并获取每个批次的索引和数据。
849 0
|
机器学习/深度学习 自动驾驶 算法
权重衰减== L2正则化?(一)
权重衰减== L2正则化?(一)
153 0
权重衰减== L2正则化?(一)
|
机器学习/深度学习 算法
权重衰减== L2正则化?(二)
权重衰减== L2正则化?(二)
188 0
权重衰减== L2正则化?(二)
|
存储 并行计算 索引