日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2024/7/5 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【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张量切换+具有随机值的张量+张量的数学运算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。