PyTorch入门
- PyTorch的安装
- CPU版本
- GPU版本
PyTorch的安装
本篇在Tensorflow安装的基础上进行PyTorch的安装示例,有关于Anaconda环境设置、Tensorflow版本安装以及pip
、conda
命令的相关设置均在之前的博客中详细说明。
基于Anaconda环境的Tensorflow安装
CPU版本
其实PyTorch的安装与Tensorflow相比要复杂一些,与一般第三方库以及Tensorflow的安装仅需要pip install --
相比,PyTorch的安装命令更为复杂,但好在PyTorch的官网给出了官方下载命令,所以这也不是什么大问题。我们首先进入PyTorch官网下载网页PyTorch官方下载。
之后会有如下页面:
在Pytorch Build一栏中Stable表示万无一失的版本,很稳定,而Preview表示最新版本,可能会有bug,这里建议选择Stable版本。之后操作系统就根据自身情况来选择,现在大多数小白应该都是在Windows环境下。在Package中虽然有pip
和conda
两种主流选择,但最终在命令行运行command时亲测conda
命令极其稳定,几乎不会出现RunTimeError
的问题。但采用pip
命令时,即使已经更换到清华源,还是会存在RunTimeError
的问题,因此推荐conda命令。
Language的话小白应该都是用Python进行机器学习方面的工作,况且都已经安装Anaconda了,和C++以及Java都没什么关系了。
最后是CUDA的选择,如果只是想简单跑个例子,CPU版本就足够了,这在之前的博客中也提到了,这里选择None就可以。
这样最后把得到的command在命令行直接键入即可,
与Tensorflow的安装一样,不需要特地新建环境,那样虽然方便,但确实没必要。
GPU版本
Pytorch的GPU版本其实与CPU版本的安装一个道理,只是把下图中的CUDA由None换为别的选项
这里只要根据自己电脑所安装的CUDA版本进行选择即可,一般为10.1或10.2。
但这里有一个问题,在之前的Tensorflow安装中,我提到为了稳定选择了CUDA10.0,而这里没有10.0的选项,为此再去下载一个CUDA10.1或10.2的版本同时配置相应版本的Cudnn当然也可以,但确实没必要。因此我们可以看到下图
这里的install previous versions of PyTorch
即为之前版本Pytorch的超链接之前版本
在这里我们可以找到与CUDA10.0版本适配的PytorchGPU版本,虽然版本有些古老,但胜在稳定,同时Pytorch的语法函数体系与Tensorflow不同,他的每一版本语法几乎没有变化,相互兼容度较高,因此老版本Pytorch是完全够用的。
在之前Tensorflow安装中采用的CUDA10.0以及Cudnn7.x的配置在Pytorch的GPU版本安装中是完全够用的,与CPU版本一样,将得到的命令输入至Windows命令行,即可安装GPU版本Pytorch。
最后在Pytorch实例教程官方网站中即可对Pytorch进行较为系统的初步学习。
比如其中的Visualizing models,Data and Training with Tensorboard
模块:
import matplotlib.pyplot as plt
import numpy as np
import torch
import torchvision
import torchvision.transforms as transforms
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
# transforms
transform = transforms.Compose(
[transforms.ToTensor(),
transforms.Normalize((0.5,), (0.5,))])
# datasets
trainset = torchvision.datasets.FashionMNIST('./data',
download=True,
train=True,
transform=transform)
testset = torchvision.datasets.FashionMNIST('./data',
download=True,
train=False,
transform=transform)
# dataloaders
trainloader = torch.utils.data.DataLoader(trainset, batch_size=4,
shuffle=True, num_workers=2)
testloader = torch.utils.data.DataLoader(testset, batch_size=4,
shuffle=False, num_workers=2)
# constant for classes
classes = ('T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle Boot')
# helper function to show an image
# (used in the `plot_classes_preds` function below)
def matplotlib_imshow(img, one_channel=False):
if one_channel:
img = img.mean(dim=0)
img = img / 2 + 0.5 # unnormalize
npimg = img.numpy()
if one_channel:
plt.imshow(npimg, cmap="Greys")
else:
plt.imshow(np.transpose(npimg, (1, 2, 0)))
...
以上仅代表个人观点,如有错误还请各位大佬指正。