宝安网站建设制作,windows优化大师收费,百度小程序开发者工具,网站备案需要注意什么一、经典网络架构图像分类模型
数据预处理部分:
数据增强数据预处理DataLoader模块直接读取batch数据
网络模块设置:
加载预训练模型#xff0c;torchvision中有很多经典网络架构#xff0c;可以直接调用注意别人训练好的任务跟咱们的并不完全一样#xff0c;需要把最后…一、经典网络架构图像分类模型
数据预处理部分:
数据增强数据预处理DataLoader模块直接读取batch数据
网络模块设置:
加载预训练模型torchvision中有很多经典网络架构可以直接调用注意别人训练好的任务跟咱们的并不完全一样需要把最后的head层改一改一般也就是最后的全连接层改成自己的任务续联时可以全部重头训练也可以只训练最后咱们任务的层因为前几层都是做特征提取的本质任务目标是一致的
网络模型保存与测试:
模型保存的时候可以带有选择性例如在验证集中如果当前效果好则保存读取模型进行实际测试
二、迁移学习
利用别人训练好的模型来训练自己的模型
注:两种物体尽可能相似
迁移学习网站:Start Locally | PyTorch
三、花图像分类案例
未完结
#数据读取与预处理操作
data_dir ./a/
# 训练集
train_dir data_dir /train
#验证集
valid_ir data_dir /valid#制作数据源
data_transfroms {train:transforms.Compose([transforms.RandomRotation(45), #随机旋转(-45~45)transforms.CenterCrop(224), #从中心开始裁剪transforms.RandomHorizontalFlip(p 0.5), #随机水平翻转transforms.RandomVerticalFlip(p 0.5), #随机垂直翻转transforms.ColorJitter(brightness0.2,contrast0.1,saturation0.1,hue 0.1),transforms.RandomGrayscale(p 0.025), #概率转换成灰度率3通道就是RGBtransforms.ToTensor(),transforms.Normalize([0.485,0.456,0.406],[0.229,0.224,0.225])]),valid:transforms.Compose([transforms.Resize(256),transforms.CenterCrop(224),transforms.ToTensor(),transforms.Normalize([0.485,0.456,0.406],[0.229,0.224,0.225])]),
}#batch数据制作
batch_size 8
image_datasets {x: datasets.ImageFolder(os.path.join(data_dir,x),data_transfroms[x]) for x in [train,valid]}
dataloaders {x: torch.utils.data.DataLoader(image_datasets[x],batch_size batch_size,shuffle True) for x in [train,valid]}
dataset_sizes {x: len(image_datasets[x]) for x in [train,valid]}
class_names image_datasets[train].classes#读取标签对应的实际名字
with open(cat_to_name.json,r) as f:cat_to_name json.load(f)#加载model中提供的模型并且直接用训练好的权重当做初始化参数
model_name resnet
#是否用人家训练好的特征来做
feature_extract True#是否用GPU来训练
train_on_gpu torch.cuda.is_available()if not train_on_gpu:print(cuda is not available. Training on CPU)
else:print(cuda is available. Training on GPU)device torch.device(cuda:0 if torch.cuda.is_available() else cpu)def set_parameter_requires_grad(model,feature_extracting):if feature_extracting:for param in model.parameter():param.requires_grad Falsemodel_ft models.resnet152()