暑假的时候导师让我学神经网络我没有好好学,最近老师又提了一嘴.吴恩达大法好,就是看不懂.于是在看莫烦Python.
评论朋友的问题,我查阅文档后,发现conda可以一步到位:
conda install torchvision -c pytorch
1.安装Anaconda3
这个网上全是教程,请自行完成,并换源,
记得加上这个源:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
这个是清华镜像站的Ppytorch,如果只更新为main/free是找不到pytorch的
2.安装pytorch
直接在cmd控制台下输入指令:
conda install pytorch
这时候会安装pytorch,570M大小,有点慢,安心等待.
可能出现如下问题: 一些依赖库如:numpy,版本过久,更新就行了
3.安装torchvision
torchvision和pytorch是两个东西,没办法通过conda指令安装,官网给出的是pip3的方式安装
pip3 install torchvision
你可能遇到如下问题:
1.依赖包版本过低
2.pip需要18.0
这些错误都有提示,更新依赖包就行
但是pip3不能通过conda update pip更新,错误中会给出提示,好像是:
python -m upgrade XXX的 .照着提示打就行了
测试一下是否可用,我这里懒得去打开最简单的测试方法了,这是一段线性预测的代码
import torch
from torch.autograd import Variable
import torch.nn.functional as F
import matplotlib.pyplot as plt
import torchvision
x = torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1)
y = x.pow(2) + 0.2 * torch.rand(x.size())
x, y = Variable(x), Variable(y)
# plt.scatter(x.data.numpy(),y.data.numpy())
# plt.show()
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.relu6(self.hidden(x))
x = self.predict(x)
return x
net = Net(1, 10, 1)
print(net)
plt.ion()
plt.show()
optimaizer = 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)
optimaizer.zero_grad()
loss.backward()
optimaizer.step()
if t % 5 == 0:
plt.cla()
plt.scatter(x.data.numpy(), y.data.numpy())
plt.plot(x.data.numpy(), prediction.data.numpy(), 'r-', lw=5)
plt.text(0.5, 0, 'Loss=%.4f' % loss.data, fontdict={'size': 20, 'color': 'red'})
plt.pause(0.1)
plt.ioff()
plt.show()