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('运行结束...')
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论