torchvision.transforms.ToTensor(),torchvision.trasnsforms.Normalize()


用PyTorch進行神經網絡訓練時,如果訓練用的數據是圖像數據,則需要在訓練之前對圖像進行預處理。以MNIST數據為例:

train_data = torchvision.datasets.MNIST(
    root='./mnist/',   
    train=True,                                     
    transform=torchvision.transforms.ToTensor(),    # Converts a PIL.Image or numpy.ndarray to
                                                    # torch.FloatTensor of shape (C x H x W) and normalize in the range [0.0, 1.0]
    download=True,                        
)

transform=torchvision.transforms.ToTensor()起到的作用是把PIL.Image或者numpy.narray數據類型轉變為torch.FloatTensor類型,shape是C*H*W,數值范圍縮小為[0.0, 1.0]。

如果想把數值范圍調整為[-1.0, 1.0],則可加torchvision.transforms.Normalize([mean_channel1,mean_channel2,mean_channel3], [std_channel1,std_channel2,std_channel3]),如果是黑白圖像,比如MNIST里的圖像,只有一個通道,則mean只需要一個,std也只需要一個。

im_tfs = torchvision.trasnsforms.Compose([
    torchvision.trasnsforms.ToTensor(),
    torchvision.trasnsforms.Normalize([0.5], [0.5]) 
])
train_data = torchvision.datasets.MNIST(
    root='./mnist/',   
    train=True,                                     
    transform=torchvision.transforms.ToTensor(),    
    download=True,                        
)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM