首页 > 解决方案 > 使用包含 requires_grad=True 参数的三重 for 循环时,Python 内核死亡(Pytorch)

问题描述

我只想存储para_kCOV矩阵的每个位置,其中:

para_k=torch.tensor([2.0],requires_grad=True).

而且因为我想稍后通过优化损失函数来更新参数(这里省略),我必须添加另一个 for 循环。因此,整个代码如下:

import torch
para_k=torch.tensor([2.0],requires_grad=True)
for t in range(5):
    num_row=300
    num_col=300
    COV = torch.zeros((num_row,num_col))
    for i in range(num_row):
        for j in range(num_col):
            COV[i,j]=para_k
            print('i= %d ,j= %d' % (i,j) )

Spyder 无法完成这个简单的计算!!nrow如果我更改并小于 100,事情会顺利ncol进行。如果我使用大于 100 的数字,它会发送错误消息(有时甚至无法完成一次迭代)内核死亡并重新启动:Spyder Kernel Died

Spyder内核死了

我什至卸载并再次安装我的 Anaconda 并重新安装 pytorch。我也尝试以管理员身份运行 Spyder,但仍然出现错误。我检查了我的系统的事件,错误是:关于pythonw.exe的ntdll.dll。我将 pythonw.exe 列为防火墙的例外,但仍然无法解决问题。

标签: pythonkernelspyderpytorch

解决方案


推荐阅读