pytorch 执行到最末,程序不能停止

问题描述:下面的代码,是一个pytorch训练线性模型的demo,在我的机器上,它能够正常的训练。但是,程序运行到最末,停不下来。只能通过强制关闭cmd窗口,才能关闭程序。
我逐句的调试过,把loss.backward();这句注释掉,则程序运行到最末,可以停止。但是,注释掉它,模型就不能正常的训练了。
是不是下面的训练demo,写的不完善?大伙提提建议。

代码运行环境说明:
windows 7 64bit
python 3.6.5
torch: 1.2.0

import torch
from torch.autograd import Variable
import torch.nn.functional as F
import matplotlib.pyplot as plt

x = torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1); # x data (tensor), shape=(100, 1)
y = x.pow(2) + 0.2 * torch.rand(x.size()); # noisy y data (tensor), shape=(100, 1)

print(x);
print(y);

x, y = Variable(x), Variable(y);


class Net(torch.nn.Module):
    def __init__(self, n_features, n_hidden, n_output):
        super(Net, self).__init__();
        self.hidden = torch.nn.Linear(n_features, n_hidden);
        self.predict = torch.nn.Linear(n_hidden, n_output);

    def forward(self, x):
        x = F.relu(self.hidden(x));
        x = self.predict(x);
        return x;


net = Net(1, 10, 1);
print(net);

optimizer = torch.optim.SGD(net.parameters(), lr=0.5);
loss_func = torch.nn.MSELoss();

for t in range(100):
    prediction = net(x);

    loss = loss_func(prediction, y);

    optimizer.zero_grad();
    loss.backward();
    optimizer.step();

    if t % 5 == 0:
        print('loss.data.numpy = ', loss.data.numpy());

print('运行结束...')
阅读 2.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进