好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > pytorch 把圖片數據轉化成tensor的操作

pytorch 把圖片數據轉化成tensor的操作

熱門標簽:地圖地圖標注有嘆號 阿里電話機器人對話 正安縣地圖標注app 螳螂科技外呼系統怎么用 遼寧智能外呼系統需要多少錢 舉辦過冬奧會的城市地圖標注 400電話申請資格 qt百度地圖標注 電銷機器人系統廠家鄭州

摘要:

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

一、數據轉換

把圖片轉成成torch的tensor數據,一般采用函數: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數組格式為(H,W,C)
transf = transforms.ToTensor()
img_tensor = transf(img) # tensor數據格式是torch(C,H,W)
print(img_tensor.size())

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

img_tensor = transforms.ToTensor(img)

必須是先定義和賦值轉換函數,再調用并輸入參數,正確用法:

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

再轉換過程中正則化

在使用 transforms.ToTensor() 進行圖片數據轉換過程中會對圖像的像素值進行正則化,即一般讀取的圖片像素值都是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函數可以自行修改正則化的范圍,下面舉個例子正則化成 [-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是三個數的數組。

使用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()對所有輸入都是有變換操作。

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

您可能感興趣的文章:
  • Pytorch Tensor的索引與切片例子
  • pytorch tensor int型除法出現的問題
  • Pytorch之擴充tensor的操作
  • Pytorch 擴展Tensor維度、壓縮Tensor維度的方法
  • Pytorch生成隨機數Tensor的方法匯總
  • PyTorch中Tensor的數據類型和運算的使用
  • Pytorch 使用tensor特定條件判斷索引

標簽:隨州 合肥 阜新 昭通 興安盟 信陽 淘寶好評回訪 濟源

巨人網絡通訊聲明:本文標題《pytorch 把圖片數據轉化成tensor的操作》,本文關鍵詞  pytorch,把,圖片,數據,轉,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《pytorch 把圖片數據轉化成tensor的操作》相關的同類信息!
  • 本頁收集關于pytorch 把圖片數據轉化成tensor的操作的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 免费看搡女人无遮挡的视频| xx性动漫xx无尽xx老师| 国产精品自拍电影| 亚洲色噜噜狠狠网站色欲八| 欧美一级婬片AAAA毛片| 有码中文字幕在线观看| 好紧好爽再搔一点再浪一| 最新色吊丝永久网站| 13学生裸体洗澡免费看| 男女无遮挡猛进猛出在线视频| 一体一道久久88色合综合网| 亚洲综合九九| 黄色的视频在线观看| 多强被?c到爽??H软件| 精品亚洲爆乳AV在线播放| 狠狠色噜噜狠狠狠狠色吗综合| 国产看黄网站又黄又爽又色| 欧洲性爱| 欧美激情校园春色| 国产a一级毛片爽爽影院| h黄文| 琪琪精品视频在线观看| 女人被添荫蒂舒服了A片看| 无遮挡1000部拍拍拍欧美劲爆 | 久久久久久精品免费观看| Japanese 日本熟妇| 啦啦啦直播在线完整版| 一级a一级a爰片免费免免免观看4| 免费高清特级毛片A片微信群| 小马宝莉第九季免费观看| 男人戳进女人里裸| 免费无码婬片AAAA片小说下载| 8050网午夜| 凤阳县| 狠狠人妻久久久久久综合蜜桃| 性美国xxxxx免费| 高清摄影网站| 午夜插插插| 精品免费大国偷自产在线Av片| 国产精品福利一区二区三区| 国产高清在线精品一区a|