#数据预处理部分:(比较简单)
按类别将数据放在一个个文件夹中后
##数据增强:
让样本数据变得更多一些,torchvision中transforms模块自带功能,比较实用
经典网络的数据大小,都是一样的,不是什么数据都能往里放,格式要一样。
##数据预处理:
torchvision中transforms也帮我们实现好了,直接调用即可
##DataLoader模块
直接读取batch数据,一批一批读取
#网络模块设置
加载训练模型,torchvision中有很多经典网络架构,调用起来十分方便,并且可以用人家训练好的权重参数来继续训练,也就是所谓迁移学习
需要注意的是别人训练好的任务跟咱们的可不是一样的,需要把最后的head层改一改,一般也就是最后的全连接层,改成咱们自己的任务
训练可以全部重头训练,也可以只训练最后咱们任务的层,因为前几层都是做特征提取的,本质任务目标是一致
#网络模型保存与测试
模型保存的时候可以带有选择性,例如在验证集中如果当前效果好则保存
读取模型进行实际测试
#数据增强
Data Augmentation
数据不够怎么办?
如何更高效利用数据?
可以的方法:图像进行反转、往左往右旋转、放大缩小、翻转等等
让数据量更多
数据量经过变换,可以变得很多
几行代码就可以搞定
##data_transforms={’train‘:transforms.Compose([
###图像旋转-45到45之间随机选一个角度transforms.RandomRotation(45)
###从中心开始裁剪1024* 1024通过resize=>256* 256,有的网络比如VGG、resnet是224224的,有很多的选择会产生很多的图像
###随机水平/垂直翻转以一个概率p=0.5翻转
###亮度brightness、对比度contrast、饱和度saturation、色相hue
###概率转成灰度图还有3通道也就是RGB
##验证集’valid’:transforms.Compose([
###resize=>256 256
###裁剪成224*224图像文件夹imagefolder
#数据读取
指定batch_size一个一个读进来
##dataset.ImageFolder数据已经在文件夹中放好了,告诉我当前路径在哪os.path.join(data_dir,x)
##前面设定好的处理方式data_transforms[x]
x里的数据类别for x in [‘train’,‘valid’]