小編這次要用代碼詳解Pytorch的環(huán)境搭建與基本語(yǔ)法,文章內(nèi)容豐富,感興趣的小伙伴可以來(lái)了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
成都創(chuàng)新互聯(lián)公司專注于汪清企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),成都做商城網(wǎng)站。汪清網(wǎng)站建設(shè)公司,為汪清等地區(qū)提供建站服務(wù)。全流程按需定制制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)基本思路選擇
以前我用過(guò)Caffe,用過(guò)tensorflow,最近一直在用pytorch感覺(jué)特別好用。所以打算寫(xiě)點(diǎn)我學(xué)習(xí)的過(guò)程跟經(jīng)驗(yàn),如果你是一個(gè)pytorch的高手自然可以忽略,如果你也打算學(xué)習(xí)pytorch框架,那就跟我一起學(xué)習(xí)吧,所謂獨(dú)學(xué)而無(wú)友,孤陋而寡聞!
pytorch安裝
01
演示系統(tǒng)環(huán)境
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做開(kāi)發(fā),那些都是個(gè)人愛(ài)好,喜歡就好,但是千萬(wàn)別強(qiáng)迫別人跟你一樣!有IDE強(qiáng)迫癥!我從開(kāi)始學(xué)習(xí)python就一直用pycharm!千萬(wàn)別問(wèn)我好用不好用,方便不方便!覺(jué)得適合自己即可。
Pytorch基本語(yǔ)法演示
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)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。