
《动手学深度学习》(PyTorch版)代码注释 - 46 【Transfer_learning】
随机裁剪:在原始图像中随机选择一个随机大小和随机高宽比例的子区域 随机水平翻转:将选定的子区域从水平方向随机翻转 转Tensor:将图像转换为PyTorch张量形式 标准化:对RGB三个通道分别进行均值减去和标准差除法均值和标准差分别使用[0.485, 0.456, 0.406]和[0.229, 0.224, 0.225]
发布日期:2021-05-19 18:03:15
浏览次数:28
分类:精选文章
本文共 1512 字,大约阅读时间需要 5 分钟。
说明
本文代码来自开源项目生 Wilkinson 是对代码进行了大量注释以便理解各个函数的原理和用途。
配置环境
使用环境:Python 3.8
平台:Windows 10开发工具:PyCharm代码致谢
感谢生 Wilkinson 的开源项目,我对这段代码进行了注释。
图像增广部分
由于这节相对复杂,代码注释量较多
预处理步骤
为了获得好的训练效果,我们对输入图像进行了以下处理
模型配置
使用了预训练的ResNet-18模型
pretrained_net = models.resnet18(pretrained=True)print(pretrained_net.fc)print(pretrained_net)
权重调整
由于输出类别数为2,我们需要修改前好的全连接层
pretrained_net.fc = nn.Linear(512, 2)print(pretrained_net.fc)print(pretrained_net)
微调学习率设置
fc层的参数初始是随机的需要较大的学习率来训练
lr = 0.01feature_params = list(map(id, pretrained_net.fc.parameters()))# 筛选出不属于fc层的参数feature_params = filter(lambda p: id(p) not in feature_params, pretrained_net.parameters())
优化器设置
使用SGD优化器,对特征参数和全连接参数分别设置学习率
optimizer = optim.SGD([ {'params': feature_params}, {'params': pretrained_net.fc.parameters(), 'lr': lr * 10}], lr=lr, weight_decay=0.001)
训练函数
这是一个完整的训练函数,可以复用于其他模型
def train_fine_tuning(net, optimizer, batch_size=128, num_epochs=5): train_iter = DataLoader(...) test_iter = DataLoader(...) criterion = loss = CrossEntropyLoss() d2l.train(train_iter, test_iter, net, loss, optimizer, device, num_epochs)
测试代码
为了对比,我们定义了一个完全从头开始训练的模型
scratch_net = models.resnet18(pretrained=False, num_classes=2)optimizer = optim.SGD(scratch_net.parameters(), lr=0.1, weight_decay=0.001)train_fine_tuning(scratch_net, optimizer)
这段代码主要展示了如何在PyTorch中使用预训练的ResNet进行迁移学习,同时对模型进行微调。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年05月01日 07时57分31秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
macaca 测试web(2)
2025-04-11
Macbook / pro卡顿怎么处理?这些方法让它满血复活!
2025-04-11
MacBook Air怎么重新输入wifi密码
2025-04-11
MacBook Pro 休眠后五国,自动重启报错
2025-04-11
Macbook Pro下Bootcamp上win7截图方法
2025-04-11
macbook 外接显示器黑屏,不显示
2025-04-11
macbook466加了两条1333金士顿正常
2025-04-11
MacBook开机出现问号文件夹?别急 可能是这些原因!
2025-04-11
MacBook键盘突然失灵?这几个排查步骤一定要试试!
2025-04-11
Macbook风扇突然一直狂转?一文搞定各种可能原因
2025-04-11
MacBook黑屏/白屏开不了机?一文搞定所有可能的解决方案!
2025-04-11
Machine Learning in Action -- 树回归
2025-04-11
macOS Big Sur 11.0.1 上未弹出应用程序
2025-04-11
MacOS Docket 安装及核心中间件环境搭建
2025-04-11
MacOS:创建目录出现 Read-only file system
2025-04-11
MacOS中Mysql设置默认字符集
2025-04-11
macOS系统上安装JDK
2025-04-11
MacType Decency 项目常见问题解决方案
2025-04-11