Pytorch筆記(一)

邢浩運發表於2020-10-01

Pytorch的安裝

本篇在Tensorflow安裝的基礎上進行Pytorch的安裝示例,有關於Anaconda環境設定、Tensorflow版本安裝以及pipconda命令的相關設定均在之前的部落格中詳細說明。
基於Anaconda環境的Tensorflow安裝

CPU版本

其實Pytorch的安裝與Tensorflow相比要複雜一些,與一般第三方庫以及Tensorflow的安裝僅需要pip install --相比,Pytorch的安裝命令更為複雜,但好在Pytorch的官網給出了官方下載命令,所以這也不是什麼大問題。我們首先進入Pytorch官網下載網頁Pytorch官方下載
之後會有如下頁面:
在這裡插入圖片描述
在Pytorch Build一欄中Stable表示萬無一失的版本,很穩定,而Preview表示最新版本,可能會有bug,這裡建議選擇Stable版本。之後作業系統就根據自身情況來選擇,現在大多數小白應該都是在Windows環境下。在Package中雖然有pipconda兩種主流選擇,但最終在命令列執行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)))
        ...

以上僅代表個人觀點,如有錯誤還請各位大佬指正。
同時若有侵權,請及時聯絡本人處理。

相關文章