torchvision.transforms系列

    torchvision.transforms是pytorch中的圖像預處理包,是圖像預處理的必備,包含了很多種對圖像數據進行變換的函數,這些都是在我們進行圖像數據讀入步驟中必不可少的。 下面來分別介紹一下。

這裏有個全的:https://blog.csdn.net/u011995719/article/details/85107009

transforms.Compose()

    將一系列transforms操作壓縮在一起,或者說是打包在一起,各種操作用列表封裝。如:

trans_train = transforms.Compose([transforms.RandomResizedCrop(224),
                                  transforms.RandomHorizontalFlip(),
                                  transforms.ToTensor(),
                                  transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])])

transforms.RandomResizedCrop(224)

     將給定圖像隨機裁剪爲不同的大小和寬高比,然後縮放所裁剪得到的圖像爲指定的大小。即先隨機採集,然後對裁剪得到的圖像縮放爲同一指定的大小。括號裏的224就是指定的圖片大小。

transforms.RandomHorizontalFlip() 

    以指定的概率隨機水平翻轉給定的PIL的圖像,默認概率爲0.5。

transforms.ToTensor()

    ToTensor是指把PIL.Image(RGB) 或者numpy.ndarray(H x W x C) 從0到255的值映射到0到1的範圍內,並轉化成Tensor格式。ToTensor()能夠把灰度範圍從0-255變換到0-1之間。

transform.Normalize( mean=[ ] , std=[ ] )

    transform.Normalize()把0-1變換到(-1,1).那transform.Normalize()是怎麼工作的呢?具體地說,對每個通道而言,Normalize執行以下操作:
        image=(image-mean)/std
Normalize(mean=[0.5], std=[0.5]),這裏的兩個0.5分別表示對張量進行歸一化的全局平均值和方差。因爲灰度圖像只有一個通道,如果是RGB彩色圖像則需要寫三個數字,如transforms.Normalize(mean=[m1,m2,m3], std=[n1,n2,n3])

transform.resize( image, output_shape )

    通過transform.resize()裁剪後的圖片是以float64的格式存儲的,數值的取值範圍是(0~1) 。image 是需要改變尺寸的圖片 ,output_shape是新的圖片尺寸 。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章