天天看點

《PyTorch深度學習實踐》學習筆記1——OverviewOverview

Overview

課程來源:PyTorch深度學習實踐——河北工業大學

《PyTorch深度學習實踐》完結合集_哔哩哔哩_bilibili

1.PyTorch簡介

​ PyTorch是一個基于Torch的Python開源機器學習庫,用于自然語言處理等應用程式。它主要由Facebookd的人工智能小組開發,不僅能夠 實作強大的GPU加速,同時還支援動态神經網絡。

2.與TensorFlow差別

​ pytorch是一個動态的架構,而TensorFlow是靜态架構(2.x版本也為動态架構優先)。靜态架構就是指我們首先建構一個計算圖,建構完成之後這個圖就不再變化,通過給變量指派來進行計算,這樣勢必導緻我們需要修改邏輯的時候相對比較複雜,而動态圖修改計算邏輯相對比較簡單。簡單舉例如下,例如假設我們需要實作如下計算圖:

《PyTorch深度學習實踐》學習筆記1——OverviewOverview

TF代碼:

import numpy as np
import tensorflow as tf
np.random.seed(0)
raw,col=3,4
x=tf.placeholder(tf.float32)
y=tf.placeholder(tf.float32)
z=tf.placeholder(tf.float32)
a=x*y
b=a+z
c=tf.reduce_sum(b)
grad_x,grad_y,grad_z=tf.gradients(c,[x,y,z])
with tf.Session()as sess:
    values={
        x:np.random.randn(raw,col),
        y: np.random.randn(raw, col),
        z: np.random.randn(raw, col)
    }
    out=sess.run([c,grad_x,grad_y,grad_z],
                 feed_dict=values)
    c_val,grad_x_val,grad_y_val,grad_z_val=out
    print(c_val,grad_x_val,grad_y_val,grad_z_val)
           

PyTorch代碼:

import torch
from torch.autograd import Variable
raw,col=3,4
x=Variable(torch.randn(raw,col),requires_grad=True)
y=Variable(torch.randn(raw,col),requires_grad=True)
z=Variable(torch.randn(raw,col),requires_grad=True)
a=x*y
b=a+z
c=torch.sum(b)
c.backward()
print(x.grad.data)
print(y.grad.data)
print(z.grad.data)
           

​ 可以發現二者都包含了建立前向計算等過程,但是相對來說PyTorch代碼比較簡短一些,相對也比較靈活一些。

3.PyTorch安裝

網上相關教程很多,不再贅述,附其中一個教程:

安裝PyTorch詳細過程_MCYZSF的部落格-CSDN部落格_pytorch安裝

繼續閱讀