Python内核在使用包含require_grad = True参数的三重循环时死亡(Pytorch)

时间:2018-07-24 19:50:26

标签: python kernel spyder pytorch

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

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无法完成这种简单的计算! 如果我将nrowncol更改为小于100,事情将会顺利进行。 如果我使用的数字大于100,它将发送错误消息(有时甚至无法完成一次迭代),表明内核已死亡并重新启动:Spyder内核死亡

Spyder Kernel Died

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

0 个答案:

没有答案