Python3.5+pip安装cpu版本
pip install http://download.pytorch.org/whl/cpu/torch-0.4.0-cp35-cp35m-win_amd64.whl
安装 torchvision
pip install torchvision
测试
import torch
import torch.nn as nn
import numpy as np
import matplotlib.pyplot as plt
from torch.autograd import Variable
# 超参数
input_size = 1
output_size = 1
num = 60
learning_rate = 0.002
# 构造数据
x_train = np.array([ [6.93], [4.168], [4.2], [5.5],[3.3], [6.71],
[9.79], [6.3], [7.2], [5.13], [7.997],
[10.71], [7.59], [2.167],[3.1]], dtype=np.float32)
y_train = np.array([[1.7], [2.76], [2.596], [2.53], [1.573],
[3.366], [1.221], [1.65], [2.904], [1.694],
[3.465], [2.827], [2.09], [3.19], [1.3]], dtype=np.float32)
# 线性回归模型(Linear Regression Model)
class LRegression(nn.Module):
def __init__(self, input_size, output_size):
super(LRegression, self).__init__()
self.linear = nn.Linear(input_size, output_size)
def forward(self, x):
out = self.linear(x)
return out
model = LRegression(input_size, output_size)
loss_criterion = nn.MSELoss()
#优化器Optimizer
optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)
# 训练模型
for i in range(num):
# 将ndarray转换为Variabl
inputs = Variable(torch.from_numpy(x_train))
targets = Variable(torch.from_numpy(y_train))
#前向传播
optimizer.zero_grad()
outputs = model(inputs)
loss = loss_criterion(outputs, targets)
#反向传播
loss.backward()
#优化
optimizer.step()
if (i+1) % 5 == 0:
print ('%d/%d, Loss: %.4f'
%(i+1, num, loss.data[0]))
# 显示
inputs=Variable(torch.from_numpy(x_train))
pred = model(inputs).data.numpy()
plt.plot(x_train, y_train, 'ro', label='Original data')
plt.plot(x_train, pred, label='Fitted line')
plt.legend()
plt.show()
安装成功