詳解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)文章
python實現(xiàn)批量獲取指定文件夾下的所有文件的廠商信息
這篇文章主要介紹了python實現(xiàn)批量獲取指定文件夾下的所有文件的廠商信息的方法,是非常實用的技巧,涉及到文件的讀寫與字典的操作等技巧,需要的朋友可以參考下2014-09-09Anaconda出現(xiàn)CondaHTTPError: HTTP 000 CONNECTION FAILED for url
使用anaconda創(chuàng)建一個新的環(huán)境,執(zhí)行“conda create -n scrapyEnv python=3.6”,結(jié)果出現(xiàn)了CondaHTTPError,下面我們就一起來了解一下解決方法吧2021-05-05python函數(shù)裝飾器構(gòu)造和參數(shù)傳遞
這篇文章主要介紹了python函數(shù)裝飾器構(gòu)造和參數(shù)傳遞,下面通過一個小案例來簡單的理解什么是裝飾器,需要的小伙伴可以參考一下2022-03-03用sqlalchemy構(gòu)建Django連接池的實例
今天小編就為大家分享一篇用sqlalchemy構(gòu)建Django連接池的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08