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

transforms.Compose()函數(shù)的使用及說(shuō)明

 更新時(shí)間:2023年08月03日 09:06:28   作者:HealthScience  
這篇文章主要介紹了transforms.Compose()函數(shù)的使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

transforms.Compose()函數(shù)的使用

torchvision.transforms是pytorch中的圖像預(yù)處理包。

一般用Compose把多個(gè)步驟整合到一起

比如說(shuō):

transforms.Compose([
    transforms.CenterCrop(10),
    transforms.ToTensor(),
])

這樣就把兩個(gè)步驟整合到了一起。

介紹transforms中的函數(shù)

Resize把給定的圖片resize到given size
Normalize用均值和標(biāo)準(zhǔn)差歸一化張量圖像
ToTensorconvert a PIL image to tensor (H*W*C) in range [0,255] to a torch.Tensor(C*H*W) in the range [0.0,1.0]
CenterCrop在圖片的中間區(qū)域進(jìn)行裁剪
RandomCrop在一個(gè)隨機(jī)的位置進(jìn)行裁剪
FiceCrop把圖像裁剪為四個(gè)角和一個(gè)中心
RandomResizedCrop將PIL圖像裁剪成任意大小和縱橫比
ToPILImageconvert a tensor to PIL image
RandomHorizontalFlip以0.5的概率水平翻轉(zhuǎn)給定的PIL圖像
RandomVerticalFlip以0.5的概率豎直翻轉(zhuǎn)給定的PIL圖像
Grayscale將圖像轉(zhuǎn)換為灰度圖像
RandomGrayscale將圖像以一定的概率轉(zhuǎn)換為灰度圖像
ColorJitter隨機(jī)改變圖像的亮度對(duì)比度和飽和度

備注:Python圖像庫(kù)PIL(Python Image Library)是python的第三方圖像處理庫(kù),但是由于其強(qiáng)大的功能與眾多的使用人數(shù),幾乎已經(jīng)被認(rèn)為是python官方圖像處理庫(kù)了。

實(shí)例

經(jīng)??吹?/p>

transform.ToTensor(),
transform.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))

那transform.Normalize()是怎么工作的呢?以上面代碼為例,

  • ToTensor()能夠把灰度范圍從0-255變換到0-1之間,
  • 而后面的transform.Normalize()則把0-1變換到(-1,1).

具體地說(shuō),對(duì)每個(gè)通道而言,Normalize執(zhí)行以下操作:image=(image-mean)/std其中mean和std分別通過(guò)(0.5,0.5,0.5)和(0.5,0.5,0.5)進(jìn)行指定。

原來(lái)的0-1最小值0則變成(0-0.5)/0.5=-1,而最大值1則變成(1-0.5)/0.5=1. 

transforms.Compose()類詳解:串聯(lián)多個(gè)transform操作

torchvision是pytorch的一個(gè)圖形庫(kù),它服務(wù)于PyTorch深度學(xué)習(xí)框架的,主要用來(lái)構(gòu)建計(jì)算機(jī)視覺(jué)模型。torchvision.transforms主要是用于常見(jiàn)的一些圖形變換。

以下是torchvision的構(gòu)成:

  • torchvision.datasets: 一些加載數(shù)據(jù)的函數(shù)及常用的數(shù)據(jù)集接口;
  • torchvision.models: 包含常用的模型結(jié)構(gòu)(含預(yù)訓(xùn)練模型),例如AlexNet、VGG、ResNet等;
  • torchvision.transforms: 常用的圖片變換,例如裁剪、旋轉(zhuǎn)等;
  • torchvision.utils: 其他的一些有用的方法。

本文的主題是其中的torchvision.transforms.Compose()類。

這個(gè)類的主要作用是串聯(lián)多個(gè)圖片變換的操作。

這個(gè)類的構(gòu)造很簡(jiǎn)單:

class torchvision.transforms.Compose(transforms):
 # Composes several transforms together.
 # Parameters: transforms (list of Transform objects) – list of transforms to compose.
Example # 可以看出Compose里面的參數(shù)實(shí)際上就是個(gè)列表,而這個(gè)列表里面的元素就是你想要執(zhí)行的transform操作。
>>> transforms.Compose([
>>>     transforms.CenterCrop(10),
>>>     transforms.ToTensor(),])

事實(shí)上,Compose()類會(huì)將transforms列表里面的transform操作進(jìn)行遍歷。

實(shí)現(xiàn)的代碼很簡(jiǎn)單:

## 這里對(duì)源碼進(jìn)行了部分截取。
def __call__(self, img):
	for t in self.transforms:	
		img = t(img)
    return img

總結(jié)

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

相關(guān)文章

最新評(píng)論