Pytorch環(huán)境搭建與基本語法
來源 | OpenCV學(xué)堂
作者 | gloomyfish
基本思路選擇
以前我用過Caffe,用過tensorflow,最近一直在用pytorch感覺特別好用。所以打算寫點(diǎn)我學(xué)習(xí)的過程跟經(jīng)驗(yàn),如果你是一個(gè)pytorch的高手自然可以忽略,如果你也打算學(xué)習(xí)pytorch框架,那就跟我一起學(xué)習(xí)吧,所謂獨(dú)學(xué)而無友,孤陋而寡聞!
pytorch安裝
01
演示系統(tǒng)環(huán)境
- Windows10
- Pytorch1.4
- CUDA10.0
- VS2015
- Python3.6.5
CPU版本
install pytorch torchvision cpuonly -c pytorch
GPU版本
install pytorch torchvision cudatoolkit=10.0 -c pytorch
測(cè)試安裝是否正常, CUDA支持正常

測(cè)試結(jié)果一切正常!
安裝的時(shí)候你還可以更直接點(diǎn)
pip install pytorch torchvision
就好啦!我知道很多人喜歡用各種python的工具跟IDE做開發(fā),那些都是個(gè)人愛好,喜歡就好,但是千萬別強(qiáng)迫別人跟你一樣!有IDE強(qiáng)迫癥!我從開始學(xué)習(xí)python就一直用pycharm!千萬別問我好用不好用,方便不方便!覺得適合自己即可。
Pytorch基本語法演示
02
演示了pytorch中基本常量、變量、矩陣操作、CUDA調(diào)用,numpy與tensor轉(zhuǎn)化,維度轉(zhuǎn)化,自動(dòng)梯度等基本知識(shí)。代碼如下:
from __future__ import print_function
import torch
import numpy as np
print(torch.__version__)
# 定義矩陣
x = torch.empty(2, 2)
print(x)
# 定義隨機(jī)初始化矩陣
x = torch.randn(2, 2)
print(x)
# 定義初始化為零
x = torch.zeros(3, 3)
print(x)
# 定義數(shù)據(jù)為tensor
x = torch.tensor([5.1, 2., 3., 1.])
print(x)
# 操作
a = torch.tensor([1.,2.,3.,4.,5.,6.,7.,8.])
b = torch.tensor([11.,12.,13.,14.,15.,16.,17.,18.])
c = a.add(b)
print(c)
# 維度變換 2x4
a = a.view(-1, 4)
b = b.view(-1, 4)
c = torch.add(a, b)
print(c, a.size(), b.size())
# torch to numpy and visa
na = a.numpy()
nb = b.numpy()
print("\na =",na,"\nb =", nb)
# 操作
d = np.array([21.,22.,23.,24.,25.,26.,27.,28.], dtype=np.float32)
print(d.reshape(2, 4))
d = torch.from_numpy(d.reshape(2, 4))
sum = torch.sub(c, d)
print(sum, "\n sum = ", sum.size())
# using CUDA
if torch.cuda.is_available():
result = d.cuda() + c.cuda()
print("\n result = ", result)
# 自動(dòng)梯度
x = torch.randn(1, 5, requires_grad=True)
y = torch.randn(5, 3, requires_grad=True)
z = torch.randn(3, 1, requires_grad=True)
print("\nx=",x, "\ny=",y, "\nz=",z)
xy = torch.matmul(x, y)
xyz = torch.matmul(xy, z)
xyz.backward()
print(x.grad, y.grad, z.grad)
運(yùn)行輸出結(jié)果:
1.4.0
tensor([[0., 0.],
[0., 0.]])
tensor([[-0.4624, -1.1495],
[ 1.9408, -0.1796]])
tensor([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
tensor([5.1000, 2.0000, 3.0000, 1.0000])
tensor([12., 14., 16., 18., 20., 22., 24., 26.])
tensor([[12., 14., 16., 18.],
[20., 22., 24., 26.]]) torch.Size([2, 4]) torch.Size([2, 4])a = [[1. 2. 3. 4.]
[5. 6. 7. 8.]]
b = [[11. 12. 13. 14.]
[15. 16. 17. 18.]]
[[21. 22. 23. 24.]
[25. 26. 27. 28.]]
tensor([[-9., -8., -7., -6.],
[-5., -4., -3., -2.]])
sum = torch.Size([2, 4])result = tensor([[33., 36., 39., 42.],
[45., 48., 51., 54.]], device='cuda:0')x= tensor([[ 0.3029, -0.4030, -0.9148, -0.9237, 0.7549]], requires_grad=True)
y= tensor([[-0.9032, -0.4092, -0.0682],
[ 0.3689, -0.9655, -0.1346],
[ 1.5101, 1.4418, 0.1058],
[ 1.0259, -1.6011, 0.4881],
[-0.3989, 0.9156, -1.6290]], requires_grad=True)
z= tensor([[ 1.4343],
[ 2.2974],
[-0.0864]], requires_grad=True)
tensor([[-2.2298, -1.6776, 5.4691, -2.2492, 1.6721]]) tensor([[ 0.4344, 0.6959, -0.0262],
[-0.5781, -0.9260, 0.0348],
[-1.3121, -2.1017, 0.0790],
[-1.3249, -2.1222, 0.0798],
[ 1.0827, 1.7342, -0.0652]]) tensor([[-3.0524],
[ 1.1164],
[-1.7437]])
總結(jié)
到此這篇關(guān)于Pytorch–環(huán)境搭建與基本語法的文章就介紹到這了,更多相關(guān)Pytorch–環(huán)境搭建與基本語法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python獲取當(dāng)前腳本文件夾(Script)的絕對(duì)路徑方法代碼
在本篇文章中小編給各位整理了關(guān)于Python獲取當(dāng)前腳本文件夾(Script)的絕對(duì)路徑實(shí)例代碼內(nèi)容,有需要的朋友們學(xué)習(xí)下。2019-08-08
python批量將PDF文件轉(zhuǎn)換成圖片的實(shí)現(xiàn)代碼
這篇文章使用python編寫了一個(gè)小腳本,目的是為了實(shí)現(xiàn)批量將PDF文件轉(zhuǎn)換成圖片,文中有詳細(xì)的實(shí)現(xiàn)代碼,對(duì)我們的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴可以參考閱讀一下2023-08-08
Python計(jì)時(shí)相關(guān)操作詳解【time,datetime】
這篇文章主要介紹了Python計(jì)時(shí)相關(guān)操作,涉及time,datetime模塊的使用技巧,包括時(shí)間戳、時(shí)間差、日期格式等操作方法,需要的朋友可以參考下2017-05-05
徹底吃透理解Python基礎(chǔ)33個(gè)關(guān)鍵字詳細(xì)教程
這篇文章主要為大家介紹了徹底吃透理解Python中33個(gè)關(guān)鍵字的詳細(xì)教程,有需要打好Python基礎(chǔ)的同學(xué)可以借鑒參考下,希望能成為您成功路上的一塊墊腳石2021-10-10
python numpy 部分排序 尋找最大的前幾個(gè)數(shù)的方法
今天小編就為大家分享一篇python numpy 部分排序 尋找最大的前幾個(gè)數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06
python中threading開啟關(guān)閉線程操作
這篇文章主要介紹了python中threading開啟關(guān)閉線程操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05
詳解Selenium-webdriver繞開反爬蟲機(jī)制的4種方法
這篇文章主要介紹了詳解Selenium-webdriver繞開反爬蟲機(jī)制的4種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10

