欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pytorch 把圖片數(shù)據(jù)轉化成tensor的操作

 更新時間:2021年03月04日 15:17:02   作者:Caesar6666  
這篇文章主要介紹了pytorch 把圖片數(shù)據(jù)轉化成tensor的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

摘要:

在圖像識別當中,一般步驟是先讀取圖片,然后把圖片數(shù)據(jù)轉化成tensor格式,再輸送到網(wǎng)絡中去。本文將介紹如何把圖片轉換成tensor。

一、數(shù)據(jù)轉換

把圖片轉成成torch的tensor數(shù)據(jù),一般采用函數(shù):torchvision.transforms。通過一個例子說明,先用opencv讀取一張圖片,然后在轉換;注意一點是:opencv儲存圖片的格式和torch的儲存方式不一樣,opencv儲存圖片格式是(H,W,C),而torch儲存的格式是(C,H,W)。

import torchvision.transforms as transforms
import cv2 as cv
img = cv.imread('image/000001.jpg')
print(img.shape)  # numpy數(shù)組格式為(H,W,C)
transf = transforms.ToTensor()
img_tensor = transf(img) # tensor數(shù)據(jù)格式是torch(C,H,W)
print(img_tensor.size())

注意:使用torchvision.transforms時要注意一下,其子函數(shù) ToTensor() 是沒有參數(shù)輸入的,以下用法是會報錯的

img_tensor = transforms.ToTensor(img)

必須是先定義和賦值轉換函數(shù),再調用并輸入?yún)?shù),正確用法:

img = cv.imread('image/000001.jpg')
transf = transforms.ToTensor()
img_tensor = transf(img)

再轉換過程中正則化

在使用 transforms.ToTensor() 進行圖片數(shù)據(jù)轉換過程中會對圖像的像素值進行正則化,即一般讀取的圖片像素值都是8 bit 的二進制,那么它的十進制的范圍為 [0, 255],而正則化會對每個像素值除以255,也就是把像素值正則化成 [0.0, 1.0]的范圍。通過例子理解一下:

import torchvision.transforms as transforms
import cv2 as cv
img = cv.imread('image/000001.jpg')
transf = transforms.ToTensor()
img_tensor = transf(img)
print('opencv', img)
print('torch', img_tensor)

三、自行修改正則化的范圍

使用transforms.Compose函數(shù)可以自行修改正則化的范圍,下面舉個例子正則化成 [-1.0, 1.0]

transf2 = transforms.Compose(
  [
    transforms.ToTensor(),
    transforms.Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5))
  ]
)
img_tensor2 = transf2(img)
print(img_tensor2)

計算方式就是:

C=(C-mean)/ std

C為每個通道的所有像素值,彩色圖片為三通道圖像(BGR),所以mean和std是三個數(shù)的數(shù)組。

使用transforms.ToTensor()時已經正則化成 [0,0, 0,1]了,那么(0.0 - 0.5)/0.5=-1.0,(1.0 - 0.5)/0.5=1.0,所以正則化成 [-1.0, 1.0]

補充:Python: 記錄一個關于圖片直接轉化為pytorch.tensor和numpy.array的不同之處的問題

img = Image.open(img_path).convert("RGB")
img2 = torchvision.transforms.functional.to_tensor(img)
print(img2)
img1 = np.array(img)
print(img1)

輸出是這樣的:

不僅shape不一樣,而且值也是不一樣的。

解釋如下:

tensor = torch.from_numpy(np.asarray(PIL.Image.open(path))).permute(2, 0, 1).float() / 255
tensor = torchvision.transforms.functional.to_tensor(PIL.Image.open(path)) # 兩種方法是一樣的

PIL.Image.open()得到HWC格式,直接使用numpy 去轉換得到(h,w,c)格式,而用to_tensor得到(c,h,w)格式且值已經除了255。

byte()相當于to(torch.uint8),tensor.numpy()是把tensor 轉化為numpy.array格式。

在這里需要注意的是PIL和OPENCV的圖像讀取得到的格式都是HWC格式,一般模型訓練使用的是CHW格式, H為Y軸是豎直方向,W為X軸水平方向。

且torchvision.transforms.functional.to_tensor()對所有輸入都是有變換操作。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關文章

  • python開發(fā)簡易版在線音樂播放器

    python開發(fā)簡易版在線音樂播放器

    這篇文章主要為大家詳細介紹了python開發(fā)簡易版在線音樂播放器的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Python辦公自動化Word轉Excel文件批量處理

    Python辦公自動化Word轉Excel文件批量處理

    這篇文章主要為大家介紹了Python辦公自動化Word轉Excel文件批量處理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • numpy找出array中的最大值,最小值實例

    numpy找出array中的最大值,最小值實例

    下面小編就為大家分享一篇numpy找出array中的最大值,最小值實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python傅里葉變換FFT繪制頻譜圖

    python傅里葉變換FFT繪制頻譜圖

    這篇文章主要為大家詳細介紹了python傅里葉變換FFT繪制頻譜圖,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 學會這29個常用函數(shù),你就是Pandas專家

    學會這29個常用函數(shù),你就是Pandas專家

    Pandas?無疑是?Python?處理表格數(shù)據(jù)最好的庫之一,但是很多新手無從下手,這里總結出最常用的?29?個函數(shù),感興趣的小伙伴可以跟隨小編一起學習一下
    2022-11-11
  • Python排序算法之堆排序算法

    Python排序算法之堆排序算法

    堆排序看字面意思是一種排序方法,那堆是什么呢?堆是一個近似完全二叉樹的結構,并同時滿足堆積的性質。其實堆排序是指利用堆這種數(shù)據(jù)結構所設計的一種排序算法。
    2023-01-01
  • 利用Python爬蟲實現(xiàn)搶購某寶秒殺商品

    利用Python爬蟲實現(xiàn)搶購某寶秒殺商品

    這篇文章主要介紹了利用Python爬蟲實現(xiàn)搶購某寶秒殺商品,文章基于python的相關資料展開詳細的內容介紹具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • PyQt5實現(xiàn)仿QQ貼邊隱藏功能的實例代碼

    PyQt5實現(xiàn)仿QQ貼邊隱藏功能的實例代碼

    這篇文章主要介紹了PyQt5實現(xiàn)仿QQ貼邊隱藏功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • python實現(xiàn)rsa加密實例詳解

    python實現(xiàn)rsa加密實例詳解

    這篇文章主要介紹了python實現(xiàn)rsa加密實例詳解的相關資料,需要的朋友可以參考下
    2017-07-07
  • Python利用PyMuPDF實現(xiàn)PDF文件處理

    Python利用PyMuPDF實現(xiàn)PDF文件處理

    PyMuPDF是MuPDF的Python綁定-“輕量級PDF和XPS查看器”。本文將利用PyMuPDF實現(xiàn)PDF的一些基本操作,文中的示例代碼講解詳細,感興趣的可以了解一下
    2022-05-05

最新評論