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

Pytorch中的圖像增廣transforms類和預(yù)處理方法

 更新時間:2023年04月01日 14:33:54   作者:北島寒沫  
這篇文章主要介紹了Pytorch中的圖像增廣和預(yù)處理方法(transforms類),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1.隨機翻轉(zhuǎn)(水平和垂直)

torchvision.transforms.RandomVerticalFlip函數(shù)和torchvision.transforms.RandomHorizontalFlip函數(shù)是兩個可以實現(xiàn)數(shù)據(jù)增強的函數(shù),可以將輸入的圖像進(jìn)行隨機垂直翻轉(zhuǎn)和隨機水平翻轉(zhuǎn),從而增加數(shù)據(jù)集的多樣性。

具體來說,torchvision.transforms.RandomVerticalFlip函數(shù)可以將輸入圖像在垂直方向上進(jìn)行隨機翻轉(zhuǎn),而torchvision.transforms.RandomHorizontalFlip函數(shù)可以將輸入圖像在水平方向上進(jìn)行隨機翻轉(zhuǎn)。這兩個函數(shù)都可以通過設(shè)置參數(shù)來控制翻轉(zhuǎn)的概率。

下面是這兩個函數(shù)的使用方法:

import torch
import torchvision.transforms as transforms

# 定義隨機垂直翻轉(zhuǎn)和隨機水平翻轉(zhuǎn)的概率
vflip_probability = 0.5  # 隨機垂直翻轉(zhuǎn)的概率
hflip_probability = 0.5  # 隨機水平翻轉(zhuǎn)的概率

# 定義圖像變換
transform = transforms.Compose([
    transforms.RandomVerticalFlip(p=vflip_probability),
    transforms.RandomHorizontalFlip(p=hflip_probability)
])

在上述代碼中,我們首先通過transforms.Compose函數(shù)定義了一個圖像變換的序列,其中包含了隨機垂直翻轉(zhuǎn)和隨機水平翻轉(zhuǎn)兩個操作。

2.隨機裁剪縮放

torchvision.transforms.RandomResizedCrop函數(shù)可以進(jìn)行隨機裁剪和縮放,從而增加數(shù)據(jù)集的多樣性。在實際使用中,這個函數(shù)有許多可調(diào)參數(shù),下面是一個更加完整的介紹:

transforms.RandomResizedCrop(
    size,       # 輸出圖像的大小
    scale=(0.08, 1.0),  # 縮放范圍,將輸入圖像按照該范圍內(nèi)的隨機比例縮放
    ratio=(3.0/4.0, 4.0/3.0),   # 長寬比范圍,將輸入圖像按照該范圍內(nèi)的隨機比例進(jìn)行裁剪
    interpolation=2     # 縮放時使用的插值方法,可選1、2、3、4中的一個,默認(rèn)為PIL.Image.BILINEAR
)

下面是各個參數(shù)的詳細(xì)介紹:

  • size:輸出圖像的大小,可以是一個整數(shù),表示輸出圖像的邊長,或者是一個二元組,表示輸出圖像的寬和高。例如,如果設(shè)置size=224,則輸出圖像的大小為 224 × 224 224\times224 224×224;如果設(shè)置size=(256,192),則輸出圖像的大小為 256 × 192 256\times192 256×192。
  • scale:縮放范圍,將輸入圖像按照該范圍內(nèi)的隨機比例縮放。該參數(shù)是一個二元組,表示縮放比例的范圍,例如(0.08,1.0)表示將輸入圖像縮放到原來的 0.08 0.08 0.08到 1.0 1.0 1.0倍之間的隨機比例。默認(rèn)值為(0.08, 1.0)。
  • ratio:長寬比范圍,將輸入圖像按照該范圍內(nèi)的隨機比例進(jìn)行裁剪。該參數(shù)是一個二元組,表示長寬比的范圍,例如(3.0/4.0,4.0/3.0)表示將輸入圖像按照寬高比在 3 / 4 3/4 3/4到 4 / 3 4/3 4/3之間的隨機比例進(jìn)行裁剪。默認(rèn)值為(3.0/4.0, 4.0/3.0)。
  • interpolation:縮放時使用的插值方法,可選1、2、3、4中的一個,分別表示PIL.Image.NEAREST、PIL.Image.BILINEAR、PIL.Image.BICUBIC和PIL.Image.LANCZOS。默認(rèn)值為PIL.Image.BILINEAR。

3.隨機修改顏色(顏色抖動)

在PyTorch中,torchvision.transforms.RandomColorJitter函數(shù)可以用于對圖像進(jìn)行隨機顏色抖動,增加數(shù)據(jù)集的多樣性。這個函數(shù)可以隨機地改變圖像的亮度、對比度、飽和度和色相,并且還可以隨機地進(jìn)行灰度化操作。下面是該函數(shù)的參數(shù):

transforms.RandomColorJitter(
    brightness=0.1,    # 亮度調(diào)整的強度,默認(rèn)值為0.1
    contrast=0.1,      # 對比度調(diào)整的強度,默認(rèn)值為0.1
    saturation=0.1,    # 飽和度調(diào)整的強度,默認(rèn)值為0.1
    hue=0.1,           # 色相調(diào)整的強度,默認(rèn)值為0.1
    p=0.5,             # 執(zhí)行顏色抖動的概率,默認(rèn)值為0.5
)

下面是各個參數(shù)的詳細(xì)介紹:

  • brightness:亮度調(diào)整的強度。默認(rèn)值為0.1。如果設(shè)置為0,則不進(jìn)行亮度調(diào)整。
  • contrast:對比度調(diào)整的強度。默認(rèn)值為0.1。如果設(shè)置為0,則不進(jìn)行對比度調(diào)整。
  • saturation:飽和度調(diào)整的強度。默認(rèn)值為0.1。如果設(shè)置為0,則不進(jìn)行飽和度調(diào)整。
  • hue:色相調(diào)整的強度。默認(rèn)值為0.1。如果設(shè)置為0,則不進(jìn)行色相調(diào)整。
  • p:執(zhí)行顏色抖動的概率。默認(rèn)值為0.5。如果設(shè)置為1,則每個圖像都會執(zhí)行顏色抖動。

4.將圖像轉(zhuǎn)化為張量

在PyTorch的torchvision庫中,ToTensor函數(shù)是一種將PIL Image或numpy.ndarray格式的圖像轉(zhuǎn)換為PyTorch Tensor格式的函數(shù)。它可以將圖像中的像素值轉(zhuǎn)換為0到1之間的標(biāo)準(zhǔn)化數(shù)值,并調(diào)整圖像的通道順序,使其符合PyTorch模型的輸入要求。

ToTensor函數(shù)的使用方法如下:

from torchvision.transforms import ToTensor
transform = ToTensor()

一般來說,在使用Compose組合在一起的一組transform中,ToTensor函數(shù)應(yīng)該放在最后一個位置,以便將圖像轉(zhuǎn)換為PyTorch Tensor格式的圖像,并確保其他所有的transform都在Tensor轉(zhuǎn)換之前完成。

5.標(biāo)準(zhǔn)化操作

在PyTorch的torchvision.transforms庫中,Normalize函數(shù)是一種對圖像進(jìn)行標(biāo)準(zhǔn)化處理的函數(shù)。它可以將圖像中的像素值進(jìn)行歸一化處理,使得圖像的像素值均值為0,標(biāo)準(zhǔn)差為1,從而增強模型的收斂速度和泛化性能。

Normalize函數(shù)的使用方法如下:

from torchvision.transforms import Normalize
transform = Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])

在上述代碼中,我們首先導(dǎo)入了Normalize函數(shù),并創(chuàng)建了一個名為transform的Normalize對象。其中,meanstd參數(shù)分別代表圖像各通道像素值的平均值和標(biāo)準(zhǔn)差。在這里,我們以ImageNet數(shù)據(jù)集的圖像均值和標(biāo)準(zhǔn)差為例進(jìn)行了設(shè)置。

需要注意的是,Normalize函數(shù)應(yīng)該在圖像轉(zhuǎn)換為PyTorch Tensor格式之后應(yīng)用,即在ToTensor之后。這是因為Normalize需要對每個通道的像素值進(jìn)行標(biāo)準(zhǔn)化,而ToTensor函數(shù)將圖像中的像素值轉(zhuǎn)換為PyTorch Tensor格式后,每個通道的像素值將存儲在不同的維度上,因此才需要在ToTensor之后進(jìn)行標(biāo)準(zhǔn)化處理。

6.同時結(jié)合多種增廣方法

在PyTorch的torchvision庫中,Compose函數(shù)是一種將多個數(shù)據(jù)增強操作組合在一起的函數(shù)。它可以將多個數(shù)據(jù)增強操作按照一定的順序組合在一起,并將它們作為一個整體應(yīng)用于數(shù)據(jù)集中的每個樣本。Compose函數(shù)可以幫助我們方便地實現(xiàn)復(fù)雜的數(shù)據(jù)增強操作,同時也可以使我們的代碼更加簡潔和易讀。

Compose函數(shù)的使用方法如下:

from torchvision.transforms import Compose
from torchvision.transforms import RandomCrop, RandomHorizontalFlip, ToTensor

transform = Compose([
    RandomCrop(32),
    RandomHorizontalFlip(),
    ToTensor()
])

在上述代碼中,我們首先導(dǎo)入了Compose函數(shù)和其他一些數(shù)據(jù)增強操作,然后創(chuàng)建了一個名為transform的Compose對象。該Compose對象由三個數(shù)據(jù)增強操作組成:隨機裁剪(RandomCrop),隨機水平翻轉(zhuǎn)(RandomHorizontalFlip)和轉(zhuǎn)換為Tensor格式(ToTensor)。

到此這篇關(guān)于Pytorch中的圖像增廣和預(yù)處理方法(transforms類)的文章就介紹到這了,更多相關(guān)Pytorch圖像增廣和預(yù)處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

  • python df遍歷的N種方式(小結(jié))

    python df遍歷的N種方式(小結(jié))

    本文主要介紹了python df遍歷的N種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • python numpy實現(xiàn)rolling滾動案例

    python numpy實現(xiàn)rolling滾動案例

    這篇文章主要介紹了python numpy實現(xiàn)rolling滾動案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • keras.layers.Conv2D()函數(shù)參數(shù)用法及說明

    keras.layers.Conv2D()函數(shù)參數(shù)用法及說明

    這篇文章主要介紹了keras.layers.Conv2D()函數(shù)參數(shù)用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python 字典判斷空的解決方案

    Python 字典判斷空的解決方案

    這段代碼定義了一個使用Any類型注解的字典task_map,并通過條件判斷檢查它是否為空,如果為空,則打印1111,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • python中(str,list,tuple)基礎(chǔ)知識匯總

    python中(str,list,tuple)基礎(chǔ)知識匯總

    本文給大家匯總介紹的是python中str(字符串)、list(列表)、tuple(元組)、dict(字典)的一些基礎(chǔ)知識,有需要的小伙伴可以參考下
    2018-02-02
  • Python中的socket網(wǎng)絡(luò)模塊介紹

    Python中的socket網(wǎng)絡(luò)模塊介紹

    這篇文章主要介紹了Python中的socket網(wǎng)絡(luò)模塊介紹,Python 中,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • Python中的字符串替換操作示例

    Python中的字符串替換操作示例

    這篇文章主要介紹了Python中的字符串替換操作示例,包括一則使用字符串模板string.Template的例子及一則使用正則表達(dá)式的例子,需要的朋友可以參考下
    2016-06-06
  • python獲取當(dāng)前文件和目錄路徑的方法詳解

    python獲取當(dāng)前文件和目錄路徑的方法詳解

    這篇文章主要介紹了Python中獲取當(dāng)前文件路徑和目錄的方法,包括使用__file__關(guān)鍵字、os.path.abspath、os.path.realpath以及sys.path,文中還介紹了在使用這些函數(shù)時需要注意的事項,需要的朋友可以參考下
    2025-01-01
  • python利用hook技術(shù)破解https的實例代碼

    python利用hook技術(shù)破解https的實例代碼

    python利用hook技術(shù)破解https的實例代碼,需要的朋友可以參考一下
    2013-03-03
  • 最新評論

    邵阳县| 拜城县| 新安县| 阜平县| 绍兴市| 邳州市| 亳州市| 疏勒县| 抚顺市| 永平县| 咸丰县| 忻州市| 屏东市| 当阳市| 玉树县| 马鞍山市| 平定县| 财经| 罗甸县| 七台河市| 丹东市| 永清县| 金昌市| 兴化市| 西平县| 清镇市| 平乡县| 徐汇区| 云龙县| 西丰县| 铜山县| 凤庆县| 三台县| 宾川县| 厦门市| 成都市| 平谷区| 龙海市| 阜平县| 马鞍山市| 张家界市|