zoukankan      html  css  js  c++  java
  • 003-keras模型的保存于加载

    方式一: 保存所有状态

    保存模型和模型图

    # 保存模型 model.save(file_path)
    model_name = '{}/{}_{}_{}_v2.h5'.format(params['model_dir'],params['filters'],params['pool_size_1'],params['pool_size_2'])
    model.save(model_name)
    
    # 保存模型图
    from keras.utils import plot_model
    # 需要安装pip install pydot
    model_plot = '{}/{}_{}_{}_v2.png'.format(params['model_dir'],params['filters'],params['pool_size_1'],params['pool_size_2'])
    plot_model(model, to_file=model_plot)
    

     

    • 模型图如图所示

    保存的模型图

    加载模型

    from keras.models import load_model
    
    model_path = '../docs/keras/100_2_3_v2.h5'
    model = load_model(model_path)
    

      

    优势和弊端
    优势一在于模型保存和加载就一行代码,写起来很方便。
    优势二在于不仅保存了模型的结构和参数,也保存了训练配置等信息。以便于从上次训练中断的地方继续训练优化。
    劣势就是占空间太大,我的模型用这种方式占了一个G。【红色部分就是上述模型采用第一种方式保存的文件】本地使用还好,如果是多人的模块需要集成,上传或者同步将会很耗时。

    方式二: 只保存模型结构和模型参数

    保存模型

    保存模型图部分和方式一相同。

    import yaml
    import json
    
    # 保存模型结构到yaml文件或者json文件
    yaml_string = model.to_yaml()
    open('../docs/keras/model_architecture.yaml', 'w').write(yaml_string)
    # json_string = model.to_json()
    # open('../docs/keras/model_architecture.json', 'w').write(json_string)
    
    # 保存模型参数到h5文件
    model.save_weights('../docs/keras/model_weights.h5')
    

      

    加载模型

    import yaml
    import json
    from keras.models import model_from_json
    from keras.models import model_from_yaml
    
    # 加载模型结构
    model = model_from_yaml(open('../docs/keras/model_architecture.yaml').read())
    # model = model_from_json(open('../docs/keras/model_architecture.json').read())
    
    # 加载模型参数
    model.load_weights('../docs/keras/model_weights.h5')
    

      

    优势和弊端

    • 优势就是节省了硬盘空间,方便同步和协作
    • 劣势是丢失了训练的一些配置信息 

  • 相关阅读:
    Tomcat临时目录及java.io.tmpdir对应的目录
    第一篇随笔
    面试
    近期小结-082714
    从头开始构建web前端应用——字符炸弹小游戏(一)
    web版ppt制作插件impress.js源码注释翻译
    .net web service Application_BeginRequest,记录请求数据
    微信APP支付,阿里云服务器,统一下单请求超时
    android仿ios圆弧边框背景
    google map 地址编码及反向地址编码
  • 原文地址:https://www.cnblogs.com/Mjerry/p/9939561.html
Copyright © 2011-2022 走看看