【Pytorch神经网络理论篇】 02 Pytorch快速上手(二)GPU与CPU张量切换+具有随机值的张量+张量的数学运算
生活随笔
收集整理的這篇文章主要介紹了
【Pytorch神经网络理论篇】 02 Pytorch快速上手(二)GPU与CPU张量切换+具有随机值的张量+张量的数学运算
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 在GPU與CPU上定義張量
1.1 GPU與CPU的張量相互轉化
import torch # 創建一個張量 a = torch.FloatTensor() # 將CPU上的張量在GPU所管理的內存中重新創建 b = a.cuda() print(b) # 輸出 tensor([], device='cuda:0') # 將GPU上的張量創建到CPU上 print(b.cpu()) # 輸出 tensor([])1.2 在GPU上定義張量
import torch # 創建一個張量 a = torch.tensor([4],device='cuda')#在GPU上定義一個張量 print(a) # 輸出 tensor([4], device='cuda:0')1.3 指定GPU設備運行的兩種方法
1.3.1 代碼方式
import torch # 創建一個張量 a = torch.FloatTensor([4]) print(a.to('cuda:0')) # 輸出 tensor([4.], device='cuda:0')1.3.2 命令行方式
CUDA_VISIBLE_DEVICES=1 # 只有編號為1的GPU對程序是可見的,在代碼中gpu[0]指的就是這塊兒GPU CUDA_VISIBLE_DEVICES=0,2,3 # 只有編號為0,2,3的GPU對程序是可見的,在代碼中gpu[0]指的是第0塊兒,# gpu[1]指的是第2塊兒,gpu[2]指的是第3塊兒 CUDA_VISIBLE_DEVICES=2,0,3 # 只有編號為0,2,3的GPU對程序是可見的,但是在代碼中gpu[0]指的是第2塊兒,# gpu[1]指的是第0塊兒,gpu[2]指的是第3塊兒使用方法1:
CUDA_VISIBLE_DEVICES=0 python 自己的代碼.py
使用方法2:
# 在代碼首行添加如下代碼 import os os.environ["CUDA_VISIBLE_DEVICES"] = 0 # 將當前代碼放置在第一個GPU上運行2 具有隨機值的張量
2.1 隨機種子的設置
### 所有的隨機值都是由隨機種子設定的 import torch torch.initial_seed() # 查看隨機種子 torch.manual_seed(2) # 設置隨機種子2.2 生成指定形狀的隨機值
import torch a = torch.rand(2,3) #指定形狀 print(a) # 輸出 tensor([[0.3513, 0.7726, 0.8044],[0.5643, 0.9863, 0.6723]])2.3 生成線性空間的隨機值
import torch ### torch.arange() 取值范圍只包括初始值,不包括結束值 a = torch.arange(1,10,step=2) # 1至10之間,按照步長為2進行取值 print(a) # tensor([1, 3, 5, 7, 9]) ### torch.linspace() 取值范圍只包括初始值,也包括結束值 b = torch.linspace(1,9,steps=5)# 1至9之間,均勻取5個值 print(b) # tensor([1., 3., 5., 7., 9.])2.4 生成對數空間的隨機值
import torch print(torch.logspace(1,9,steps=5)) #同torch.linspace() # 輸出 tensor([1.0000e+01, 1.0000e+03, 1.0000e+05, 1.0000e+07, 1.0000e+09])2.5 生成未初始化的矩陣
import torch print(torch.empty(1,2)) # 生成指定形狀的未初始化的矩陣 # tensor([[6.6718e+35, 2.3473e-38]])2.6 更多隨機值生成函數
例如:伯努利分布、柯西分布、指數分布、幾何分布、對數正態分布、正態分布、均勻分布、連續均勻分布
3 張量的數學運算
3.1 運算函數與運算方法
import torch a = torch.FloatTensor([4]) print(a) # 輸出 tensor([4.]) ### Pytorch重載運算符 print(a+a) # 輸出 tensor([8.]) ### Pytorch的加法函數 b = torch.add(a,a) print(b) # 輸出 tensor([8.]) ### Pytorch的指定輸出函數 torch.add(a,a,out=b) print(b) # 輸出 tensor([8.])3.2 自變化運算函數
import torch a = torch.FloatTensor([4]) ### 自變化運算函數是指:在變量本身的基礎上做運算,最終結果會作用于自己本身 a.add_(a) print(a) # 輸出 tensor([8.])總結
以上是生活随笔為你收集整理的【Pytorch神经网络理论篇】 02 Pytorch快速上手(二)GPU与CPU张量切换+具有随机值的张量+张量的数学运算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Pytorch神经网络基础理论篇】 0
- 下一篇: Python键鼠自动化函数