Pytorch實戰(zhàn)之?dāng)?shù)據(jù)加載和處理詳解
Pytorch提供了許多工具來簡化和希望數(shù)據(jù)加載,使代碼更具可讀性。這里將專門講述transforms數(shù)據(jù)預(yù)處理方法,即數(shù)據(jù)增強。
數(shù)據(jù)增強又稱為數(shù)據(jù)增廣、數(shù)據(jù)擴增,它是對訓(xùn)練集進(jìn)行變換,使訓(xùn)練集更豐富,從而讓模型更具泛化能力。
# 在進(jìn)行下面代碼學(xué)習(xí)前需要安裝torchvision==0.8.2 !pip install torchvision==0.8.2 --user
from PIL import Image
from torchvision import transforms as T
import torch as t
to_tensor = T.ToTensor()
to_pil = T.ToPILImage()
cat = Image.open('./cat.jpeg') transforms——Crop


# torchvision.transforms.CenterCrop transforms = T.Compose([T.Resize(224),T.CenterCrop(224),T.ToTensor()]) # Resize:縮放 cat_t = transforms(cat) # 傳入transforms中的數(shù)據(jù)是PIL數(shù)據(jù),lena_t為tensor cat_t.shape # 3*224*224 ; 當(dāng)T.CenterCrop()的參數(shù)大于T.Resize()的參數(shù)時,周圍用0填充 to_pil(cat_t)

# torchvision.transforms.RandomCrop transforms = T.Compose([T.Resize(224),T.RandomCrop(224, padding=(16, 64)),T.ToTensor()]) # Resize:縮放 cat_t = transforms(cat) # 傳入transforms中的數(shù)據(jù)是PIL數(shù)據(jù),lena_t為tensor cat_t.shape # 3*224*224 ; 當(dāng)T.CenterCrop()的參數(shù)大于T.Resize()的參數(shù)時,周圍用0填充 to_pil(cat_t)

transforms——Flip

# torchvision.transforms.RandomHorizontalFlip transforms = T.Compose([T.Resize(224),T.RandomHorizontalFlip(p=0.5),T.ToTensor()]) # Resize:縮放 cat_t = transforms(cat) # 傳入transforms中的數(shù)據(jù)是PIL數(shù)據(jù),lena_t為tensor cat_t.shape # 3*224*224 ; 當(dāng)T.CenterCrop()的參數(shù)大于T.Resize()的參數(shù)時,周圍用0填充 to_pil(cat_t)

# torchvision.transforms.RandomRotation transforms = T.Compose([T.Resize(224),T.RandomRotation(30, center=(0, 0), expand=True),T.ToTensor()]) # Resize:縮放 cat_t = transforms(cat) # 傳入transforms中的數(shù)據(jù)是PIL數(shù)據(jù),lena_t為tensor cat_t.shape # 3*224*224 ; 當(dāng)T.CenterCrop()的參數(shù)大于T.Resize()的參數(shù)時,周圍用0填充 to_pil(cat_t)

圖像變換


transforms的操作

自定義transforms
自定義transforms要素:
1.僅接收一個參數(shù),返回一個參數(shù)
2.注意上下游的輸出與輸入
class Compose(object):
def __call__(self, img):
for t in transforms:
img = t(img)
return img通過類實現(xiàn)多參數(shù)傳入:
class YourTransforms(object):
def __init__(self, transforms):
self.transforms = transforms
def __call__(self, img):
for t in self.transforms:
img = t(img)
return img椒鹽噪聲又稱為脈沖噪聲,是一種隨機出現(xiàn)的白點或者黑點,白點稱為鹽噪聲,黑色為椒噪聲。
信噪比(Signal-Noise Rate,SNR)是衡量噪聲的比例,圖像中為圖像像素的占比。
class AddPepperNoise(object):
def __init__(self, snr, p):
self.snr = snr
self.p = p
def __call__(self, img):
# 添加椒鹽噪聲具體實現(xiàn)過程
img = None
return imgtransforms方法

到此這篇關(guān)于Pytorch實戰(zhàn)之?dāng)?shù)據(jù)加載和處理詳解的文章就介紹到這了,更多相關(guān)Pytorch數(shù)據(jù)加載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pytorch MSELoss計算平均的實現(xiàn)方法
這篇文章主要介紹了pytorch MSELoss計算平均的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-05-05
python批量實現(xiàn)Word文件轉(zhuǎn)換為PDF文件
這篇文章主要為大家詳細(xì)介紹了python批量實現(xiàn)Word文件轉(zhuǎn)換為PDF文件的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03

