最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pytorch之ToPILImage()不輸出圖片問題及解決

 更新時(shí)間:2024年02月27日 10:30:37   作者:Adversity-sl  
這篇文章主要介紹了Pytorch之ToPILImage()不輸出圖片問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Pytorch ToPILImage()不輸出圖片

先導(dǎo)torchvision包

from PIL import Image
from torchvision.transforms import ToTensor,ToPILImage

定義轉(zhuǎn)換操作

img_to_tensor = ToTensor() # img -> tensor
tensor_to_pil = ToPILImage() # tensor -> img

讀取圖片

img = Image.open('../test.jpg') # ‘' 引號內(nèi)為要讀取圖片的相對路徑

把讀取的圖片轉(zhuǎn)換成tensor進(jìn)而對其操作,

unsqueeze(0)是在給轉(zhuǎn)換后的tensor加一個(gè)維度

input = img_to_tensor(img).unsqueeze(0) #torch.Size([1, 3, 960, 720])

對圖像進(jìn)行一個(gè)簡單的操作,此處用的3*3的kernel進(jìn)行銳化卷積

kernel = t.ones(3,3)/-9.
kernel[1][1] = 1
conv = nn.Conv2d(1,1,(3,3),1,bias=False) #卷積
conv.weight.data = kernel.view(1,1,3,3) #權(quán)重

將圖片傳入卷積層,并輸出

out = conv(V(input)) 
tensor_to_pil(out.data.squeeze(0)).show()

注意,此處若不用.show()則輸出臺無顯示。

另附torchvision.transforms.ToTensor及torchvision.transforms.ToPILImage的轉(zhuǎn)換過程

torchvision.transforms.ToTensor

對于一個(gè)圖片img,調(diào)用ToTensor轉(zhuǎn)化成張量的形式,發(fā)生的不是將圖片的RGB三維信道矩陣變成tensor

圖片在內(nèi)存中以bytes的形式存儲,轉(zhuǎn)化過程的步驟是:

  • img.tobytes() 將圖片轉(zhuǎn)化成內(nèi)存中的存儲格式
  • torch.BytesStorage.frombuffer(img.tobytes() ) 將字節(jié)以流的形式輸入,轉(zhuǎn)化成一維的張量
  • 對張量進(jìn)行reshape
  • 對張量進(jìn)行permute(2,0,1)
  • 將當(dāng)前張量的每個(gè)元素除以255
  • 輸出張量

torchvision.transforms.ToPILImage

對于一個(gè)Tensor的轉(zhuǎn)化過程是:

  • 將張量的每個(gè)元素乘上255
  • 將張量的數(shù)據(jù)類型有FloatTensor轉(zhuǎn)化成Uint8
  • 將張量轉(zhuǎn)化成numpy的ndarray類型
  • 對ndarray對象做permute (1, 2, 0)的操作
  • 利用Image下的fromarray函數(shù),將ndarray對象轉(zhuǎn)化成PILImage形式
  • 輸出PILImage

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

双柏县| 汽车| 天长市| 长岛县| 焦作市| 灵宝市| 龙海市| 精河县| 全南县| 丹棱县| 山东| 贵港市| 门源| 玉环县| 鱼台县| 邛崃市| 康乐县| 台南县| 辛集市| 榆社县| 金山区| 如东县| 安庆市| 缙云县| 四子王旗| 高密市| 交口县| 连云港市| 宁阳县| 涞水县| 富顺县| 望江县| 富源县| 鹤山市| 周口市| 葫芦岛市| 杨浦区| 阿鲁科尔沁旗| 定州市| 黄梅县| 象州县|