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. 一、JAVA通过JDBC连接mysql数据库(连接)
  2. dplyr 数据操作 常用函数(2)
  3. VS2005新建应用工程出错解决方法
  4. PHP-什么是PHP?为什么用PHP?有谁在用PHP?
  5. C++使用Json作为数据包装格式的通信
  6. 【MATLAB技巧】——求解符号方程
  7. 每日算法系列【LeetCode 330】按要求补齐数组
  8. 如果想对控制反转和依赖注入有更深入的理解
  9. java 切图 软件_Java 切图
  10. 用JAVA不失精度计算等额本息还款列表
  11. WhatsApp网页版扫码分析
  12. HTML5和CSS3归纳
  13. 新版白话空间统计(12):P值的表达以及空间统计上的特性
  14. 转化率中找淘宝店铺推广方法(转)
  15. 基于JAVA的员工工资管理系统设计与实现
  16. JAVA程序员要如何从初级程序员过渡到系统架构师?
  17. 我把某宝当副业,一年还完债务:这个风口行业,真的很赚钱
  18. 每天一道面试题一谈谈TCP建立连接和断开连接的过程
  19. 获取网站的用户访问量
  20. 谁知道免费的office软件如何安装

热门文章

  1. flink报错:incompatible types for field cpuCores
  2. Windows Server 2003 系统配置方案
  3. Underscore简介
  4. TMS320F280049学习笔记3_CMPSS 比较器子模块
  5. 八数码--Astar--启发函数
  6. 小程序设计规范及经验分享
  7. pb反编译工具 常见问题集
  8. 指数分布与泊松过程(一)
  9. Greenplum数据迁移工具——gpcopy
  10. 中国移动利润减少超过百亿,5G网络建设进度不如4G网络