詳解pytorch tensor和ndarray轉換相關總結
在使用pytorch的時候,經(jīng)常會涉及到兩種數(shù)據(jù)格式tensor和ndarray之間的轉換,這里總結一下兩種格式的轉換:
1. tensor cpu 和tensor gpu之間的轉化:
tensor cpu 轉為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 轉為tensor cpu:
tensor_cpu = tensor_gpu.cuda()
>>> tensor_gpu.cpu() tensor([[1., 1.], [1., 1.]])
2. tensor cpu 和 ndarray 之間的轉化:
tensor cpu 轉為 ndarray:
>>> np_array= tensor_cpu.numpy() array([[1., 1.], [1., 1.]], dtype=float32)
ndarray 轉為 tensor cpu:
注:ndarray的默認精度為64位,Tensor的默認精度位32位,所以通過Tensor直接轉換的話,精度會轉換到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 之間的轉化:
如果只是訓練了一個簡單的分類網(wǎng)絡,對單個樣本的輸出會是一個標量(scalar)
>>>torch.ones((1,1)).item() 1.0
通過一張圖說明三者的轉化方式:
到此這篇關于詳解pytorch tensor和ndarray轉換相關總結的文章就介紹到這了,更多相關pytorch tensor和ndarray轉換內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
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”,結果出現(xiàn)了CondaHTTPError,下面我們就一起來了解一下解決方法吧2021-05-05