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 ()有何区别相关推荐

  1. 利用Gensim训练关于英文维基百科的Word2Vec模型(Training Word2Vec Model on English Wikipedia by Gensim)

    Training Word2Vec Model on English Wikipedia by Gensim 更新:发现另一篇译文:中英文维基百科语料上的Word2Vec实验,该译文还提供了中文维基百 ...

  2. Keras框架下的保存模型和加载模型

    在Keras框架下训练深度学习模型时,一般思路是在训练环境下训练出模型,然后拿训练好的模型(即保存模型相应信息的文件)到生产环境下去部署.在训练过程中我们可能会遇到以下情况: 需要运行很长时间的程序在 ...

  3. Tensorflow加载预训练模型和保存模型(ckpt文件)以及迁移学习finetuning

    使用tensorflow过程中,训练结束后我们需要用到模型文件.有时候,我们可能也需要用到别人训练好的模型,并在这个基础上再次训练.这时候我们需要掌握如何操作这些模型数据.看完本文,相信你一定会有收获 ...

  4. 03_TF2 Guide、文档清单(数据输入、估计器、保存模型、加速器、性能调优等)、TF2库和扩展库(TensorBoard、数据集、TensorFlow Hub、概率和统计分析库、图像处理库)

    对应位置:https://tensorflow.google.cn/guide 本博文为笔者对TensorFlow2官网翻译,后续会将此博文完善,连接对应地址,将会被慢慢替换大家熟悉的中文博文 1.T ...

  5. Tensorflow 加载预训练模型和保存模型

    使用tensorflow过程中,训练结束后我们需要用到模型文件.有时候,我们可能也需要用到别人训练好的模型,并在这个基础上再次训练.这时候我们需要掌握如何操作这些模型数据.看完本文,相信你一定会有收获 ...

  6. pytorch保存模型pth_浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式

    我们经常会看到后缀名为.pt, .pth, .pkl的pytorch模型文件,这几种模型文件在格式上有什么区别吗? 其实它们并不是在格式上有区别,只是后缀不同而已(仅此而已),在用torch.save ...

  7. pytorch保存模型方法

    Pytorch 有两种保存模型的方式,都是通过调用pickle序列化方法实现的. 第一种方法只保存模型参数.第二种方法保存完整模型.推荐使用第一种,第二种方法可能在切换设备和目录的时候出现各种问题. ...

  8. Tensorflow保存模型和加载预训练模型

    训练好的模型需要保存下来或者加载已经训练完成的模型,就用到了ckpt文件. 目录 1.了解tensorflow保存的文件 (1)checkpoint (2)MyModel.meta (3)MyMode ...

  9. Python gensim库使用word2vec 加载和保存模型、在预训练基础上训练自己的预料

    Python gensim库使用word2vec 常见: gensim.models.word2vec.Word2Vec(size=300, sg=1, min_count=1) 加载和保存模型 ge ...

最新文章

  1. Meta 发布 Bean Machine 帮助衡量 AI 模型的不确定性
  2. python跟php如何共用mysql_Python 3 多个函数共用一个mysql连接
  3. iOS逆向之旅(进阶篇) — 工具(LLDB)
  4. 大剑无锋之二分搜索、二分搜索时间复杂度、三分查找呢?
  5. docker容器内开启22 ssh_在docker容器中开启ssh服务 (未成功有时间再验证)
  6. 查找Python中给定字符串的所有排列
  7. 买它!华为Mate30系列国行版发布:3999元起,5G版再加1000元
  8. 51单片机redefinition_lcd12864程序在keil中出现好多重新定义,尝试了很多办法都改不了,求助大家了...
  9. Atitit data struts art 数据结构的艺术 数据结构之道 attilax著 目录 1. 分类 1 1.1. 按照元素关系分(集合,列表,tree,map,图) 1 1.2. 按
  10. vue引入自定义字体otf、ttf字体的方法
  11. Origin不显示零刻度
  12. 使用adb安装apk
  13. 深度学习这些年那些超重要的idea回顾总结
  14. 熊猫猪新系统测试之三:iOS 8.0.2
  15. 阿里ECS云服务器买来之后必做的几个操作
  16. 《Java程序设计》公选课学习指南
  17. Matlab运用mapping包在地图上绘制散点图
  18. 一个字等于几个字节,怎么确定机器是16/32/64位机器
  19. Tomcat基本使用以及项目部署。
  20. Mybatis中and和循环or混用 (or转换成in)

热门文章

  1. “计算机的内存不足。请保存文件并关闭这些程序:xxx”解决方法
  2. stop the bibi
  3. LeetCode#230.二叉搜索书中第k小的元素
  4. 前端开发工程师——面试题总结
  5. 网页游戏服务器搭建,如何搭建网页游戏服务器
  6. Linux系统安装教程_闲情偶寄
  7. Flutter 项目实战 底部导航 六
  8. 项目管理MOOC-期末
  9. linux驱动开发篇(四)—— platform平台设备驱动
  10. 毕业设计 单片机智能饮水机系统 - 物联网 嵌入式