深度学习训练时程序突然退出,错误代码为 -1073741571,怎么解决?

深度学习训练时程序突然退出,错误代码为 -1073741571,怎么解决?

python 程序在 windows 上突然退出,错误代码为 -1073741571

pycharm 中运行深度学习训练时,程序可能会突然结束,退出代码为 -1073741571。此错误表明程序遇到了未处理的异常。

原因分析

经过仔细检查源代码,发现问题出在以下代码块中:

for j in range(images.size(0)):
  loss_list[index[j]] = loss[j]

在这里,loss_list 被初始化为一个存储浮点数的 pytorch 张量。然而,loss 是一个张量,其中包含训练批次中每个样本的损失值。因此,将张量分配给浮点数会导致问题。

解决方案

将 loss_list 初始化为 numpy 数组,而不是 pytorch 张量,可以解决此问题:

loss_list = np.zeros(len(dataloader.dataset))

这样,loss_list 就可以存储浮点数,并且可以正确地保存每个样本的损失值。

其他改进

此外,如果不需要为收集的损失计算梯度,可以进一步改进代码,如下所示:

for j in range(batch_size):
  loss_list[index[j]] = loss[j].item()

这将从张量中提取原始浮点数,从而避免不必要的内存消耗和梯度计算。

以上就是深度学习训练时程序突然退出,错误代码为 -1073741571,怎么解决?的详细内容,更多请关注其它相关文章!