pytorch tutorial学习笔记

Training a Classifier

1. Loading and normalizing CIFAR10

transform=transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))])


        在读到这儿的这句代码时,不太理解,查了些博客。
博客https://blog.csdn.net/u014484247/article/details/79997357中介绍transforms.ToTensor(),transforms.Normalize(mean,std)的作用。

    ToTensor()将shape为(H, W, C)的nump.ndarray或img转为shape为(C, H, W)的tensor,其将每一个数值归一化到[0,1],其归一化方法比较简单,直接除以255即可。

  transforms.Compose([transforms.ToTensor(),transforms.Normalize(std=(0.5,0.5,0.5),mean=(0.5,0.5,0.5))]),则其作用就是先将输入归一化到(0,1),再使用公式”(x-mean)/std”,将每个元素分布到(-1,1) 。


(1)transforms.Compose就是将transforms组合在一起;

(2)transforms.Normalize使用如下公式进行归一化:

x=(x-mean)/std(因为transforms.ToTensor()已经把数据处理成[0,1],那么(x-0.5)/0.5就是[-1.0, 1.0])

这样一来,数据中的每个值就变成了[-1,1]的数了。

       我还找了一篇介绍np.transpose()函数的博客https://blog.csdn.net/qq_37377691/article/details/80086480。


trainset=torchvision.datasets.CIFAR10(root='./data',train=True,download=True,transform=transform)


trainloader=torch.utils.data.DataLoader(trainset,batch_size=4,shuffle=True,num_workers=2)

#经过这两步的处理,最终把数据集中的数据转成了trainloader中的(image,label)对的形式,后面对输入数据进行处理时,就从trainloader里面取。


testset=torchvision.datasets.CIFAR10(root='./data',train=False,download=True,transform=transform)

testloader=torch.utils.data.DataLoader(testset,batch_size=4,shuffle=False,num_workers=2)

classes=('plane','car','bird','cat','deer','dog','frog','horse','ship','truck')

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容