神经网络-网络模型的使用及修改、保存与读取

一、现有模型的使用

#VGG16

(1)下载数据集ImageNet

①解读官方文档

②要找的正确的虚拟环境下,下载包(scipy),才能被检测到:

 数据集文件不在根目录,不公开了,要自行下载:

 ③在网址下载数据集

注册成功之后就可以下载了:ImageNet (image-net.org)

太大太慢了,没办法使用imagenet数据集去验证VGG16模型中参数pretrain了,改变策略:把这个参数设置为TRUE/FALSE,去看看下载的网络模型差别。

(2)查看vgg16模型在imagenet数据集上训练的结果

pretrained=FALSE时,只是加载网络模型;pretrained=TRUE时,才是从网络中进行下载,VGG16网络模型中的一些参数都是在数据集上训练好的。

网络不行,下载中断了,需要找到权重文件进行删除:

 参考解决方案:https://blog.csdn.net/qq_40280673/article/details/126664656

 删除预训练权重文件:

下载好之后,就可以查看训练好的网络模型,vgg16的网络架构如下:

分类结果:输出为1000,即在imagenet上训练后的结果。

(3)在CIFAR10数据集上应用vgg网络模型

vgg16模型在imagenet数据集上训练,把数据集划分成了1000个类,而CIFAR10数据集上分为了10类,如果想在CIFAR10数据集上应用vgg网络模型,可进行如下处理:

思路一:直接把out_features改为10;

思路二:在线性层下面加一层,使in_features=1000,out_features=10。

思路二,添加一层线性层代码:

 不加到整个vgg16里面,加到classifier里面:

 二、模型的修改

vgg_true上一步其实已经修改过,接下来修改vgg_false进行示例:

(1)查看vgg_false模型结构

 (2)采用思路一进行修改,直接把out_features改为10,修改过程:

三、模型的保存与加载

(1)保存方式1:不仅保存了网络模型的结构,还保存了网络模型的参数:

# 保存方式1-》加载模型 :保存模型的结构和参数

 (2)保存方式2:保存模型参数(官方推荐:因为这种保存模式比较小,对于比较大的模型用的空间就比较小)

 第二中保存方式,文件更小:

# 保存方式1-》加载模型 :保存模型的参数,字典形式

恢复成网络模型结构,需要新建:

可以加载别人训练好的模型,直接拿来用:

 

 (3)陷阱:方式1保存的模型,加载的时候,如果是现有的网络模型可以直接加载,如果是自己定义的网络模型,必须要引入定义方式(要么把定义的模型直接复制过来,要么引入定义这个模型的单独的文件夹)。

自己定义一个模型,进行保存:

按照之前方式去加载模型,报错了。

 把模型的定义复制过来就可以了:

 把定义该模型的文件import也可以,要让程序访问到模型定义的方式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值