Pytorch下微调网络模型(迁移学习)进行图像分类
Pytorch下微调网络模型进行图像分类
利用ImageNet下的预训练权重采用迁移学习策略,能够实现模型快速训练,提高图像分类性能。下面以vgg和resnet网络模型为例,微调最后的分类层进行分类。
注意,微调只对分类层(也就是全连接层)的参数进行更新,前面的参数需要被冻结。
(1)微调VGG模型进行图像分类(以vgg16为例)
import torch
import torch.nn as nn
import torchvision.models as modelsclasses_num = 200 # 数据集的类别数model = models.vgg16(pretrained=True) # vgg16_bn, 区别,有无BN操作
for parameter in model.parameters():parameter.required_grad = False
model.classifier = nn.Sequential(nn.Linear(512*7*7, 4096),nn.ReLU(inplace=True),nn.Dropout(0.5),nn.Linear(4096, 4096),nn.ReLU(inplace=True),nn.Dropout(0.5),nn.Linear(4096, classes_num))
model = model.cuda()
print(model)
(2)微调ResNet模型进行图像分类(以ResNet-34为例)
import torch
import torch.nn as nn
import torchvision.models as modelsclasses_num = 200 # 数据集的类别数model = models.resnet34(pretrained=True)
for parameter in model.parameters():parameter.required_grad = False
model.classifier = nn.Linear(512, classes_num)
model = model.cuda()
print(model)
参考:
https://www.cnblogs.com/rs-xiaosheng/p/12892362.html
实例:
https://blog.csdn.net/heiheiya/article/details/103028543
https://www.jianshu.com/p/b935e108ba7d
https://blog.csdn.net/m0_37867091/article/details/107450768
Pytorch下微调网络模型(迁移学习)进行图像分类相关推荐
- Pytorch:利用迁移学习做图像分类
**Pytorch:利用迁移学习做图像分类** 数据准备 数据扩充 数据加载 迁移学习 训练 验证 推理/分类 在这一篇文章中,我们描述了如何在 pytorch中进行图像分类.我们将使用Caltech ...
- pytorch与keras_Keras vs PyTorch:如何通过迁移学习区分外星人与掠食者
pytorch与keras by Patryk Miziuła 通过PatrykMiziuła Keras vs PyTorch:如何通过迁移学习区分外星人与掠食者 (Keras vs PyTorch ...
- 手动搭建的VGG16网络结构训练数据和使用ResNet50微调(迁移学习)训练数据对比(图像预测+前端页面显示)
文章目录 1.VGG16训练结果: 2.微调ResNet50之后的训练结果: 3.结果分析: 4.实验效果: (1)VGG16模型预测的结果: (2)在ResNet50微调之后预测的效果: 5.相关代 ...
- PyTorch实战使用Resnet迁移学习
PyTorch实战使用Resnet迁移学习 项目结构 项目任务 项目代码 网络模型测试 项目结构 数据集存放在flower_data文件夹 cat_to_name.json是makejson文件运行生 ...
- 开放世界下的混合域适应 ——面向真实自然场景下的全新迁移学习范式
Ziwei Liu*, Zhongqi Miao*, Xingang Pan, Xiaohang Zhan, Dahua Lin, Stella X. Yu, Boqing Gong, Open Co ...
- 【迁移学习(Transfer L)全面指南】基于迁移学习完成图像分类任务(Pytorch)
文章目录 1 任务 2 场景 3 代码实现 3.1 导入第三方库 3.2 加载数据 3.3 训练 3.4 微调卷积网络 4 ConvNet 作为固定特征提取器 1 任务 如何使用迁移学习训练用于图像分 ...
- PyTorch系列 | 快速入门迁移学习
点击上方"算法猿的成长",选择"加为星标" 第一时间关注 AI 和 Python 知识 图片来源:Pexels,作者:Arthur Ogleznev 2019 ...
- 迁移学习CNN图像分类模型 - 花朵图片分类
训练一个好的卷积神经网络模型进行图像分类不仅需要计算资源还需要很长的时间.特别是模型比较复杂和数据量比较大的时候.普通的电脑动不动就需要训练几天的时间.为了能够快速地训练好自己的花朵图片分类器,我们可 ...
- PyTorch实现基于ResNet18迁移学习的宝可梦数据集分类
一.实现过程 1.数据集描述 数据集分为5类,分别如下: 皮卡丘:234 超梦:239 杰尼龟:223 小火龙:238 妙蛙种子:234 自取链接:https://pan.baidu.com/s/1b ...
最新文章
- visual studio intergration
- NVelocity:语法
- iOS开发-动画总结
- jdbc如果不关闭连接_JDBC基础整理
- byte数组转字符串_VS2012 C# 16进制数与字符串的互换
- java excel api xlsx_Java 解析Excel(xls、xlsx两种格式)
- 大师兄科研网vasp_怎样知道一名研究生有没有科研潜力?
- 图解Java常用数据结构
- php twig输出html,php – HTML不呈现[Twig] / [Slim]
- C#编程(四十)----------运算符重载
- Linux电源管理(1)_整体架构
- 新建模块 pom.xml依赖无法识别_使用模块依赖关系,第2部分
- php支付接口要改动的参数,京东支付接口2.0PHP集成遇到的一些问题:所有参数必须是string!...
- 【计算机组成原理】定点乘法运算之补码一位乘法(Booth算法)(对初学者的步骤详解)
- 网络七层协议的通俗理解
- AWS的十条军规: 过去十年的经验总结
- 性能测试实战(七):数据驱动
- 本周(12.23-12.29)半价电子书 1
- 如何快速解决 Mybatis 异常:Invalid bound statement (not found)
- 多源异构网络安全关联分析