詳解pytorch tensor和ndarray轉(zhuǎn)換相關(guān)總結(jié)
在使用pytorch的時候,經(jīng)常會涉及到兩種數(shù)據(jù)格式tensor和ndarray之間的轉(zhuǎn)換,這里總結(jié)一下兩種格式的轉(zhuǎn)換:
1. tensor cpu 和tensor gpu之間的轉(zhuǎn)化:
tensor cpu 轉(zhuǎn)為tensor gpu:
tensor_gpu = tensor_cpu.cuda()
>>> tensor_cpu = torch.ones((2,2))
tensor([[1., 1.],
[1., 1.]])
>>> tensor_gpu = tensor_cpu.cuda()
tensor([[1., 1.],
[1., 1.]], device='cuda:0')
tensor gpu 轉(zhuǎn)為tensor cpu:
tensor_cpu = tensor_gpu.cuda()
>>> tensor_gpu.cpu()
tensor([[1., 1.],
[1., 1.]])
2. tensor cpu 和 ndarray 之間的轉(zhuǎn)化:
tensor cpu 轉(zhuǎn)為 ndarray:
>>> np_array= tensor_cpu.numpy()
array([[1., 1.],
[1., 1.]], dtype=float32)
ndarray 轉(zhuǎn)為 tensor cpu:
注:ndarray的默認(rèn)精度為64位,Tensor的默認(rèn)精度位32位,所以通過Tensor直接轉(zhuǎn)換的話,精度會轉(zhuǎn)換到32位,若通過from_numpy的方式,則會保留原來64位精度
>>> torch.from_numpy(np.ones((2,2)))
tensor([[1., 1.],
[1., 1.]], dtype=torch.float64)
>>> torch.Tensor(np.ones((2,2)))
tensor([[1., 1.],
[1., 1.]])
3. tensor cpu 和 scalar 之間的轉(zhuǎn)化:
如果只是訓(xùn)練了一個簡單的分類網(wǎng)絡(luò),對單個樣本的輸出會是一個標(biāo)量(scalar)
>>>torch.ones((1,1)).item() 1.0
通過一張圖說明三者的轉(zhuǎn)化方式:

到此這篇關(guān)于詳解pytorch tensor和ndarray轉(zhuǎn)換相關(guān)總結(jié)的文章就介紹到這了,更多相關(guān)pytorch tensor和ndarray轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
以文檔處理為例講解豆包API調(diào)用教程(Python)
這篇文章主要介紹了如何在Linux服務(wù)器上配置和使用豆包大模型的API,通過API處理200萬字的文檔,展現(xiàn)了技術(shù)的發(fā)展和應(yīng)用,需要的朋友可以參考下2025-01-01
Django?ORM?事務(wù)和查詢優(yōu)化的操作方法
這篇文章主要介紹了Django?ORM?事務(wù)和查詢優(yōu)化,包括事務(wù)操作、ORM 惰性查詢及only與defer相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09
Python使用Windows API創(chuàng)建窗口示例【基于win32gui模塊】
這篇文章主要介紹了Python使用Windows API創(chuàng)建窗口操作,結(jié)合實例形式分析了Python基于win32gui模塊調(diào)用Windows API創(chuàng)建窗口具體操作步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2018-05-05
如何使用python的plot繪制loss、acc曲線并存儲成圖片
在數(shù)據(jù)可視化中曲線圖是一種常見的展示數(shù)據(jù)趨勢的方式,Python作為一種強大的編程語言,提供了豐富的數(shù)據(jù)處理和可視化庫,使得繪制曲線圖變得非常簡單,下面這篇文章主要給大家介紹了關(guān)于如何使用python的plot繪制loss、acc曲線并存儲成圖片的相關(guān)資料,需要的朋友可以參考下2024-03-03

