同样是保存模型,model.save()和model. save_weights ()有何区别
model.save()保存了模型的图结构和模型的参数,保存模型的后缀是.hdf5。
model. save_weights ()只保存了模型的参数,并没有保存模型的图结构,保存模型的后缀使用.h5。
所以使用save_weights保存的模型比使用save() 保存的模型的大小要小。同时加载模型时的方法也不同。model.save()保存了模型的图结构,直接使用load_model()方法就可加载模型然后做测试,例:
from tensorflow.keras.models import load_model
model=load_model("my_model_.hdf5")
加载save_weights保存的模型就稍微复杂了一些,还需要再次描述模型结构信息才能加载模型。例:
def bn_prelu(x):
x = BatchNormalization(epsilon=1e-5)(x)
x = PReLU()(x)
return x
def build_model(out_dims, input_shape=(norm_size, norm_size, 3)):
inputs_dim = Input(input_shape)
x = Conv2D(32, (3, 3), strides=(2, 2), padding='same')(inputs_dim)
x = bn_prelu(x)
x = Conv2D(32, (3, 3), strides=(1, 1), padding='same')(x)
x = bn_prelu(x)
x = MaxPooling2D(pool_size=(2, 2))(x)
x = Conv2D(64, (3, 3), strides=(1, 1), padding='same')(x)
x = bn_prelu(x)
x = Conv2D(64, (3, 3), strides=(1, 1), padding='same')(x)
x = bn_prelu(x)
x = MaxPooling2D(pool_size=(2, 2))(x)
x = Conv2D(128, (3, 3), strides=(1, 1), padding='same')(x)
x = bn_prelu(x)
x = Conv2D(128, (3, 3), strides=(1, 1), padding='same')(x)
x = bn_prelu(x)
x = MaxPooling2D(pool_size=(2, 2))(x)
x = Conv2D(256, (3, 3), strides=(1, 1), padding='same')(x)
x = bn_prelu(x)
x = Conv2D(256, (3, 3), strides=(1, 1), padding='same')(x)
x = bn_prelu(x)
x = GlobalAveragePooling2D()(x)
dp_1 = Dropout(0.5)(x)
fc2 = Dense(out_dims)(dp_1)
fc2 = Activation('softmax')(fc2) #此处注意,为sigmoid函数
model = Model(inputs=inputs_dim, outputs=fc2)
return model
model=build_model(labelnum)
model. load_weights(“my_model_.h5”);
同样是保存模型,model.save()和model. save_weights ()有何区别相关推荐
- 利用Gensim训练关于英文维基百科的Word2Vec模型(Training Word2Vec Model on English Wikipedia by Gensim)
Training Word2Vec Model on English Wikipedia by Gensim 更新:发现另一篇译文:中英文维基百科语料上的Word2Vec实验,该译文还提供了中文维基百 ...
- Keras框架下的保存模型和加载模型
在Keras框架下训练深度学习模型时,一般思路是在训练环境下训练出模型,然后拿训练好的模型(即保存模型相应信息的文件)到生产环境下去部署.在训练过程中我们可能会遇到以下情况: 需要运行很长时间的程序在 ...
- Tensorflow加载预训练模型和保存模型(ckpt文件)以及迁移学习finetuning
使用tensorflow过程中,训练结束后我们需要用到模型文件.有时候,我们可能也需要用到别人训练好的模型,并在这个基础上再次训练.这时候我们需要掌握如何操作这些模型数据.看完本文,相信你一定会有收获 ...
- 03_TF2 Guide、文档清单(数据输入、估计器、保存模型、加速器、性能调优等)、TF2库和扩展库(TensorBoard、数据集、TensorFlow Hub、概率和统计分析库、图像处理库)
对应位置:https://tensorflow.google.cn/guide 本博文为笔者对TensorFlow2官网翻译,后续会将此博文完善,连接对应地址,将会被慢慢替换大家熟悉的中文博文 1.T ...
- Tensorflow 加载预训练模型和保存模型
使用tensorflow过程中,训练结束后我们需要用到模型文件.有时候,我们可能也需要用到别人训练好的模型,并在这个基础上再次训练.这时候我们需要掌握如何操作这些模型数据.看完本文,相信你一定会有收获 ...
- pytorch保存模型pth_浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
我们经常会看到后缀名为.pt, .pth, .pkl的pytorch模型文件,这几种模型文件在格式上有什么区别吗? 其实它们并不是在格式上有区别,只是后缀不同而已(仅此而已),在用torch.save ...
- pytorch保存模型方法
Pytorch 有两种保存模型的方式,都是通过调用pickle序列化方法实现的. 第一种方法只保存模型参数.第二种方法保存完整模型.推荐使用第一种,第二种方法可能在切换设备和目录的时候出现各种问题. ...
- Tensorflow保存模型和加载预训练模型
训练好的模型需要保存下来或者加载已经训练完成的模型,就用到了ckpt文件. 目录 1.了解tensorflow保存的文件 (1)checkpoint (2)MyModel.meta (3)MyMode ...
- Python gensim库使用word2vec 加载和保存模型、在预训练基础上训练自己的预料
Python gensim库使用word2vec 常见: gensim.models.word2vec.Word2Vec(size=300, sg=1, min_count=1) 加载和保存模型 ge ...
最新文章
- Meta 发布 Bean Machine 帮助衡量 AI 模型的不确定性
- python跟php如何共用mysql_Python 3 多个函数共用一个mysql连接
- iOS逆向之旅(进阶篇) — 工具(LLDB)
- 大剑无锋之二分搜索、二分搜索时间复杂度、三分查找呢?
- docker容器内开启22 ssh_在docker容器中开启ssh服务 (未成功有时间再验证)
- 查找Python中给定字符串的所有排列
- 买它!华为Mate30系列国行版发布:3999元起,5G版再加1000元
- 51单片机redefinition_lcd12864程序在keil中出现好多重新定义,尝试了很多办法都改不了,求助大家了...
- Atitit data struts art 数据结构的艺术 数据结构之道 attilax著 目录 1. 分类	1 1.1. 按照元素关系分(集合,列表,tree,map,图)	1 1.2. 按
- vue引入自定义字体otf、ttf字体的方法
- Origin不显示零刻度
- 使用adb安装apk
- 深度学习这些年那些超重要的idea回顾总结
- 熊猫猪新系统测试之三:iOS 8.0.2
- 阿里ECS云服务器买来之后必做的几个操作
- 《Java程序设计》公选课学习指南
- Matlab运用mapping包在地图上绘制散点图
- 一个字等于几个字节,怎么确定机器是16/32/64位机器
- Tomcat基本使用以及项目部署。
- Mybatis中and和循环or混用 (or转换成in)