日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

【Pytorch神经网络理论篇】 02 Pytorch快速上手(二)GPU与CPU张量切换+具有随机值的张量+张量的数学运算

發(fā)布時(shí)間:2024/7/5 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Pytorch神经网络理论篇】 02 Pytorch快速上手(二)GPU与CPU张量切换+具有随机值的张量+张量的数学运算 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1 在GPU與CPU上定義張量

1.1 GPU與CPU的張量相互轉(zhuǎn)化

import torch # 創(chuàng)建一個(gè)張量 a = torch.FloatTensor() # 將CPU上的張量在GPU所管理的內(nèi)存中重新創(chuàng)建 b = a.cuda() print(b) # 輸出 tensor([], device='cuda:0') # 將GPU上的張量創(chuàng)建到CPU上 print(b.cpu()) # 輸出 tensor([])

1.2 在GPU上定義張量

import torch # 創(chuàng)建一個(gè)張量 a = torch.tensor([4],device='cuda')#在GPU上定義一個(gè)張量 print(a) # 輸出 tensor([4], device='cuda:0')

1.3 指定GPU設(shè)備運(yùn)行的兩種方法

1.3.1 代碼方式

import torch # 創(chuàng)建一個(gè)張量 a = torch.FloatTensor([4]) print(a.to('cuda:0')) # 輸出 tensor([4.], device='cuda:0')

1.3.2 命令行方式

CUDA_VISIBLE_DEVICES=1 # 只有編號(hào)為1的GPU對(duì)程序是可見的,在代碼中g(shù)pu[0]指的就是這塊兒GPU CUDA_VISIBLE_DEVICES=0,2,3 # 只有編號(hào)為0,2,3的GPU對(duì)程序是可見的,在代碼中g(shù)pu[0]指的是第0塊兒,# gpu[1]指的是第2塊兒,gpu[2]指的是第3塊兒 CUDA_VISIBLE_DEVICES=2,0,3 # 只有編號(hào)為0,2,3的GPU對(duì)程序是可見的,但是在代碼中g(shù)pu[0]指的是第2塊兒,# gpu[1]指的是第0塊兒,gpu[2]指的是第3塊兒

使用方法1:

CUDA_VISIBLE_DEVICES=0 python 自己的代碼.py

使用方法2:

# 在代碼首行添加如下代碼 import os os.environ["CUDA_VISIBLE_DEVICES"] = 0 # 將當(dāng)前代碼放置在第一個(gè)GPU上運(yùn)行

2 具有隨機(jī)值的張量

2.1 隨機(jī)種子的設(shè)置

### 所有的隨機(jī)值都是由隨機(jī)種子設(shè)定的 import torch torch.initial_seed() # 查看隨機(jī)種子 torch.manual_seed(2) # 設(shè)置隨機(jī)種子

2.2 生成指定形狀的隨機(jī)值

import torch a = torch.rand(2,3) #指定形狀 print(a) # 輸出 tensor([[0.3513, 0.7726, 0.8044],[0.5643, 0.9863, 0.6723]])

2.3 生成線性空間的隨機(jī)值

import torch ### torch.arange() 取值范圍只包括初始值,不包括結(jié)束值 a = torch.arange(1,10,step=2) # 1至10之間,按照步長(zhǎng)為2進(jìn)行取值 print(a) # tensor([1, 3, 5, 7, 9]) ### torch.linspace() 取值范圍只包括初始值,也包括結(jié)束值 b = torch.linspace(1,9,steps=5)# 1至9之間,均勻取5個(gè)值 print(b) # tensor([1., 3., 5., 7., 9.])

2.4 生成對(duì)數(shù)空間的隨機(jī)值

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 更多隨機(jī)值生成函數(shù)

例如:伯努利分布、柯西分布、指數(shù)分布、幾何分布、對(duì)數(shù)正態(tài)分布、正態(tài)分布、均勻分布、連續(xù)均勻分布

3 張量的數(shù)學(xué)運(yùn)算

3.1 運(yùn)算函數(shù)與運(yùn)算方法

import torch a = torch.FloatTensor([4]) print(a) # 輸出 tensor([4.]) ### Pytorch重載運(yùn)算符 print(a+a) # 輸出 tensor([8.]) ### Pytorch的加法函數(shù) b = torch.add(a,a) print(b) # 輸出 tensor([8.]) ### Pytorch的指定輸出函數(shù) torch.add(a,a,out=b) print(b) # 輸出 tensor([8.])

3.2 自變化運(yùn)算函數(shù)

import torch a = torch.FloatTensor([4]) ### 自變化運(yùn)算函數(shù)是指:在變量本身的基礎(chǔ)上做運(yùn)算,最終結(jié)果會(huì)作用于自己本身 a.add_(a) print(a) # 輸出 tensor([8.])

總結(jié)

以上是生活随笔為你收集整理的【Pytorch神经网络理论篇】 02 Pytorch快速上手(二)GPU与CPU张量切换+具有随机值的张量+张量的数学运算的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。