构建神经网络步骤总结
1、加载数据
使用的头文件 from torchvision import datasets, transforms
加载数据分为两部分
二者差别不大 唯一却别就是训练集要将训练参数为true 测试集为false
batchsz 32 cifar_train datasets.CIFAR10( cifar ,True,transform transforms.Compose([ transforms.Resize((32,32)), transforms.ToTensor() ]),download True) #以上一次只能加载一张图片 使用多线程的操作来加载多张图片 cifar_train DataLoader(cifar_train,batch_size batchsz,shuffle True) cifar_test datasets.CIFAR10( cifar , False, transform transforms.Compose([ transforms.Resize((32, 32)), transforms.ToTensor() ]), download True) cifar_test DataLoader(cifar_test, batch_size batchsz, shuffle True) #得到数据集的迭代器 x,label iter(cifar_train).__next__() python 在这里插入代码片
python
为了可以加载多张图片 使用dataloader 多线程来加载多张图片
cifar_train DataLoader(cifar_train,batch_size batchsz,shuffle True) cifar_test DataLoader(cifar_test, batch_size batchsz, shuffle True)
第二步 构建网络结构
暂时还不清楚怎么设计网络 目前能做的是看图说话
接下来构建如下图网络:
上图构建过程分为两步
1、卷积神经网络构建
self.conv_unit nn.Sequential( #输入x [b,3,32,32] nn.Conv2d(3,6,kernel_size 5,stride 1,padding 0), nn.AvgPool2d(kernel_size 2,stride 2,padding 0), nn.Conv2d(6,16,kernel_size 5,padding 0), nn.AvgPool2d(kernel_size 2,stride 2,padding 0) #为了和全连接相连 需要对数据进行打平
全连接层构建过程
self.fc_unit nn.Sequential( #输入和输出 120为输出 暂时不知道多少 暂定120 nn.Linear(16*5*5,120), nn.ReLU(), nn.Linear(120,84), nn.ReLU(), nn.Linear(84,10)
随后将网络串联起来 调用forward 函数完成此效果 神经网络中forward 函数是必备的 可以说是神经网络使用说明书 通过随forward 的运行将网络结构串起来 另外也有backward 函数 但是一般不会初始化 可以直接调用 因为forward 存在 在运行的过程中 系统自动保存回溯轨迹
def forward(self,x):



