paddlepaddle 19 动态修改模型的最后一层
模型 修改 动态 19 最后 PaddlePaddle 一层
2023-09-14 09:01:36 时间
在进行迁移学习时,通常需要修改模型的最后一层,按照需求重新进行定义。但是,迁移学习需要在众多的模型中进行对比实验,而定义最后一个layer时,需要知道layer的name,和layer输入数据的shape,也就是需要对model的layer进行遍历。
1、遍历model
通过以下代码可以遍历model
import paddle
#print('飞桨框架内置模型:', paddle.vision.models.__all__)
model=paddle.vision.resnet18()
layer_list=[(name,atom_layer) for name,atom_layer in model.named_sublayers()]
#print(model)
feature_layer_name,feature_layer=layer_list[-1]
feature_layer_shape=feature_layer.weight.shape
feature_layer_type=feature_layer.__class__
print("feature layer:",feature_layer_name,feature_layer_shape,feature_layer_type)
代码执行输出如下所示:
feature layer: fc [512, 1000] <class 'paddle.nn.layer.common.Linear'>
2、动态修改模型的最后一层
动态修改模型的最后一层,支持语义分割模型和图像分类模型。但是需要注意的是,模型的最后一层必须是layer对象(如resnet系列,densenet系列,mobilenet系
相关文章
- paddlepaddle 29 无模型定义代码下动态修改网络结构(relu变prelu,conv2d变conv3d,2d语义分割模型改为3d语义分割模型)
- TCP/IP模型的一个简单解释
- CSS 基础点集锦一:盒子模型、浮动、清除浮动
- ML之PFI(eli5):基于mpg汽车油耗数据集利用RF随机森林算法和PFI置换特征重要性算法实现模型特征可解释性排序
- Python:python语言中与时间有关的库函数简介、安装、使用方法(获取当前时间/计算程序块前后运行时间/模型训练时间或耗费时间)之详细攻略
- Python实现Stacking回归模型(随机森林回归、极端随机树回归、AdaBoost回归、GBDT回归、决策树回归)项目实战
- PocketSphinx语音识别系统语言模型的训练和声学模型的改进
- NLP模型笔记2022-14:修改fastTex预训练模型的词语向量维度并保存模型
- 建模算法(七)——排队论模型
- detectron2(目标检测框架)无死角玩转-07:源码详解(3)-模型构建-RetinaNet为例
- DL之Keras:基于Keras框架建立模型实现【预测】功能的简介、设计思路、案例分析、代码实现之详细攻略(经典,建议收藏)
- pytorch 24 把MMSegmentation的作为pytorch的语义分割模型库使用(已实现模型的训练与部署)
- 图像识别 43个模型