精华内容
下载资源
问答
  • 如何保存 Keras 模型

    2020-12-02 14:48:45
    不建议使用 pickle 或 cPickle 来保存 Keras 模型。 你可以使用model.save(filepath)将 Keras 模型保存到单个 HDF5 文件中,该文件将包含: 模型的结构,允许重新创建模型 模型的权重 训练配置项(损失函数,...

    保存/加载整个模型(结构 + 权重 + 优化器状态)

    不建议使用 pickle 或 cPickle 来保存 Keras 模型。

    你可以使用 model.save(filepath) 将 Keras 模型保存到单个 HDF5 文件中,该文件将包含:

    • 模型的结构,允许重新创建模型
    • 模型的权重
    • 训练配置项(损失函数,优化器)
    • 优化器状态,允许准确地从你上次结束的地方继续训练。

    你可以使用 keras.models.load_model(filepath) 重新实例化模型。load_model 还将负责使用保存的训练配置项来编译模型(除非模型从未编译过)。

    示例:

    from keras.models import load_model
    
    model.save('my_model.h5')  # 创建 HDF5 文件 'my_model.h5'
    del model  # 删除现有模型
    
    # 返回一个编译好的模型
    # 与之前那个相同
    model = load_model('my_model.h5')
    

    另请参阅如何安装 HDF5 或 h5py 以在 Keras 中保存我的模型,查看有关如何安装 h5py 的说明。

    只保存/加载模型的结构

    如果您只需要保存模型的结构,而非其权重或训练配置项,则可以执行以下操作:

    # 保存为 JSON
    json_string = model.to_json()
    
    # 保存为 YAML
    yaml_string = model.to_yaml()
    

    生成的 JSON/YAML 文件是人类可读的,如果需要还可以手动编辑。

    你可以从这些数据建立一个新的模型:

    # 从 JSON 重建模型:
    from keras.models import model_from_json
    model = model_from_json(json_string)
    
    # 从 YAML 重建模型:
    from keras.models import model_from_yaml
    model = model_from_yaml(yaml_string)
    

    只保存/加载模型的权重

    如果您只需要 模型的权重,可以使用下面的代码以 HDF5 格式进行保存。

    请注意,我们首先需要安装 HDF5 和 Python 库 h5py,它们不包含在 Keras 中。

    model.save_weights('my_model_weights.h5')
    

    假设你有用于实例化模型的代码,则可以将保存的权重加载到具有相同结构的模型中:

    model_1 = SR_Net() #先定义模型
    model_1.load_weights('my_model_weights.h5') #再加载保存的权重,保存权重的网络要和加载权重的网络完全相同
    

    如果你需要将权重加载到不同的结构(有一些共同层)的模型中,例如微调或迁移学习,则可以按层的名字来加载权重:

    model.load_weights('my_model_weights.h5', by_name=True)
    

    示例:

    """
    假设原始模型如下所示:
        model = Sequential()
        model.add(Dense(2, input_dim=3, name='dense_1'))
        model.add(Dense(3, name='dense_2'))
        ...
        model.save_weights(fname)
    """
    
    # 新模型
    model = Sequential()
    model.add(Dense(2, input_dim=3, name='dense_1'))  # 将被加载
    model.add(Dense(10, name='new_dense'))  # 将不被加载
    
    # 从第一个模型加载权重;只会影响第一层,dense_1
    model.load_weights(fname, by_name=True)
    展开全文
  • 如何保存Keras模型

    万次阅读 多人点赞 2017-01-13 13:32:35
    我们不推荐使用pickle或cPickle来保存Keras模型 你可以使用model.save(filepath)将Keras模型和权重保存在一个HDF5文件中,该文件将包含: 模型的结构,以便重构该模型模型的权重训练配置(损失函数,优化器等)...
     
    

    我们不推荐使用pickle或cPickle来保存Keras模型

    你可以使用model.save(filepath)将Keras模型和权重保存在一个HDF5文件中,该文件将包含:

    • 模型的结构,以便重构该模型
    • 模型的权重
    • 训练配置(损失函数,优化器等)
    • 优化器的状态,以便于从上次训练中断的地方开始

    使用keras.models.load_model(filepath)来重新实例化你的模型,如果文件中存储了训练配置的话,该函数还会同时完成模型的编译

    例子:

    from keras.models import load_model
    
    model.save('my_model.h5')  # creates a HDF5 file 'my_model.h5'
    del model  # deletes the existing model
    
    # returns a compiled model
    # identical to the previous one
    model = load_model('my_model.h5')
    

    如果你只是希望保存模型的结构,而不包含其权重或配置信息,可以使用:

    # save as JSON
    json_string = model.to_json()
    
    # save as YAML
    yaml_string = model.to_yaml()
    

    这项操作将把模型序列化为json或yaml文件,这些文件对人而言也是友好的,如果需要的话你甚至可以手动打开这些文件并进行编辑。

    当然,你也可以从保存好的json文件或yaml文件中载入模型:

    # model reconstruction from JSON:
    from keras.models import model_from_json
    model = model_from_json(json_string)
    
    # model reconstruction from YAML
    model = model_from_yaml(yaml_string)
    

    如果需要保存模型的权重,可通过下面的代码利用HDF5进行保存。注意,在使用前需要确保你已安装了HDF5和其Python库h5py

    model.save_weights('my_model_weights.h5')
    

    如果你需要在代码中初始化一个完全相同的模型,请使用:

    model.load_weights('my_model_weights.h5')
    

    如果你需要加载权重到不同的网络结构(有些层一样)中,例如fine-tune或transfer-learning,你可以通过层名字来加载模型:

    model.load_weights('my_model_weights.h5', by_name=True)
    

    例如:

    """
    假如原模型为:
        model = Sequential()
        model.add(Dense(2, input_dim=3, name="dense_1"))
        model.add(Dense(3, name="dense_2"))
        ...
        model.save_weights(fname)
    """
    # new model
    model = Sequential()
    model.add(Dense(2, input_dim=3, name="dense_1"))  # will be loaded
    model.add(Dense(10, name="new_dense"))  # will not be loaded
    
    # load weights from first model; will only affect the first layer, dense_1.
    model.load_weights(fname, by_name=True)
    
    
    展开全文
  • 如何保存keras模型

    2017-11-30 17:45:04
    我们不推荐使用pickle或cPickle来保存Keras模型 你可以使用model.save(filepath)将Keras模型和权重保存在一个HDF5文件中,该文件将包含: 模型的结构,以便重构该模型模型的权重训练配置(损失函数,优化器等...

    我们不推荐使用pickle或cPickle来保存Keras模型

    你可以使用model.save(filepath)将Keras模型和权重保存在一个HDF5文件中,该文件将包含:

    • 模型的结构,以便重构该模型
    • 模型的权重
    • 训练配置(损失函数,优化器等)
    • 优化器的状态,以便于从上次训练中断的地方开始

    使用keras.models.load_model(filepath)来重新实例化你的模型,如果文件中存储了训练配置的话,该函数还会同时完成模型的编译

    例子:

    from keras.models import load_model
    
    model.save('my_model.h5')  # creates a HDF5 file 'my_model.h5'
    del model  # deletes the existing model
    
    # returns a compiled model
    # identical to the previous one
    model = load_model('my_model.h5')
    

    如果你只是希望保存模型的结构,而不包含其权重或配置信息,可以使用:

    # save as JSON
    json_string = model.to_json()
    
    # save as YAML
    yaml_string = model.to_yaml()
    

    这项操作将把模型序列化为json或yaml文件,这些文件对人而言也是友好的,如果需要的话你甚至可以手动打开这些文件并进行编辑。

    当然,你也可以从保存好的json文件或yaml文件中载入模型:

    # model reconstruction from JSON:
    from keras.models import model_from_json
    model = model_from_json(json_string)
    
    # model reconstruction from YAML
    model = model_from_yaml(yaml_string)
    

    如果需要保存模型的权重,可通过下面的代码利用HDF5进行保存。注意,在使用前需要确保你已安装了HDF5和其Python库h5py

    model.save_weights('my_model_weights.h5')
    

    如果你需要在代码中初始化一个完全相同的模型,请使用:

    model.load_weights('my_model_weights.h5')
    

    如果你需要加载权重到不同的网络结构(有些层一样)中,例如fine-tune或transfer-learning,你可以通过层名字来加载模型:

    model.load_weights('my_model_weights.h5', by_name=True)
    

    例如:

    """
    假如原模型为:
        model = Sequential()
        model.add(Dense(2, input_dim=3, name="dense_1"))
        model.add(Dense(3, name="dense_2"))
        ...
        model.save_weights(fname)
    """
    # new model
    model = Sequential()
    model.add(Dense(2, input_dim=3, name="dense_1"))  # will be loaded
    model.add(Dense(10, name="new_dense"))  # will not be loaded
    
    # load weights from first model; will only affect the first layer, dense_1.
    model.load_weights(fname, by_name=True)
    

    展开全文
  • 如何保存Keras模型

    2017-05-08 11:07:36
    如何保存Keras模型?我们不推荐使用pickle或cPickle来保存Keras模型你可以使用model.save(filepath)将Keras模型和权重保存在一个HDF5文件中,该文件将包含:-模型的结构,以便重构该模型 -模型的权重 -训练配置...

    如何保存Keras模型?

    我们不推荐使用pickle或cPickle来保存Keras模型

    你可以使用model.save(filepath)将Keras模型和权重保存在一个HDF5文件中,该文件将包含:

    -模型的结构,以便重构该模型
    -模型的权重
    -训练配置(损失函数,优化器等)
    -优化器的状态,以便于从上次训练中断的地方开始

    使用keras.models.load_model(filepath)来重新实例化你的模型,如果文件中存储了训练配置的话,该函数还会同时完成模型的编译
    例子:

    from keras.models import load_model
    
    model.save('my_model.h5')  # creates a HDF5 file 'my_model.h5'
    del model  # deletes the existing model
    
    
    # returns a compiled model
    # identical to the previous one
    model = load_model('my_model.h5')

    如果你只是希望保存模型的结构,而不包含其权重或配置信息,可以使用:

    # save as JSON
    json_string = model.to_json()
    
    # save as YAML
    yaml_string = model.to_yaml()

    这项操作将把模型序列化为json或yaml文件,这些文件对人而言也是友好的,如果需要的话你甚至可以手动打开这些文件并进行编辑。

    当然,你也可以从保存好的json文件或yaml文件中载入模型:

    # model reconstruction from JSON:
    from keras.models import model_from_json
    model = model_from_json(json_string)
    
    # model reconstruction from YAML
    model = model_from_yaml(yaml_string)

    如果需要保存模型的权重,可通过下面的代码利用HDF5进行保存。注意,在使用前需要确保你已安装了HDF5和其Python库h5py

    model.save_weights('my_model_weights.h5')

    如果你需要在代码中初始化一个完全相同的模型,请使用:

    model.load_weights('my_model_weights.h5')

    如果你需要加载权重到不同的网络结构(有些层一样)中,例如fine-tune或transfer-learning,你可以通过层名字来加载模型:

    model.load_weights('my_model_weights.h5', by_name=True)

    例如:

    """
    假如原模型为:
        model = Sequential()
        model.add(Dense(2, input_dim=3, name="dense_1"))
        model.add(Dense(3, name="dense_2"))
        ...
        model.save_weights(fname)
    """
    # new model
    model = Sequential()
    model.add(Dense(2, input_dim=3, name="dense_1"))  # will be loaded
    model.add(Dense(10, name="new_dense"))  # will not be loaded
    
    # load weights from first model; will only affect the first layer, dense_1.
    model.load_weights(fname, by_name=True)
    展开全文
  • 求助各路大神,小弟最近用keras跑神经网络模型,在训练和测试时都很好没问题,但是在保存时出现问题 小弟保存模型用的语句: json_string = model.to_json() open('my_model_architecture.json', 'w').write(json_...
  • Keras模型保存

    2018-05-12 12:17:09
    本文转载自https://blog.csdn.net/u010159842/article/details/54407745我们不推荐使用pickle或cPickle来保存Keras模型你可以使用model.save(filepath)将Keras模型和权重保存在一个HDF5文件中,该文件将包含:模型的...
  • 保存加载keras模型

    2019-12-25 17:03:44
    保存加载keras模型 # load libraries 保存和加载 Keras 模型 import numpy as np from keras.datasets import imdb from keras.preprocessing.text import Tokenizer from keras import models from keras import ...
  • 如何将训练好的网络进行保存,我们可以用pickle或cPickle来保存Keras模型,同时我们可以用下面的方法: 一、保存整个模型 model.save(filepath)将Keras模型和权重保存在一个HDF5文件中,该文件将包含: 模型的结构 ...
  • 如何保存及加载Keras模型

    千次阅读 2018-05-27 09:10:44
    我们不推荐使用pickle或cPickle来保存Keras模型 你可以使用model.save(filepath)将Keras模型和权重保存在一个HDF5文件中,该文件将包含: . 模型的结构,以便重构该模型 . 模型的权重 . 训练配置(损失函数,...
  • TF2.x的keras模型保存与加载keras模型保存keras 模型的加载 传送门:官方文档 这里只想简单记录应用时遇到的一些坑。 keras模型的保存 假设有模型如下: keras模型的有三种形式: 使用model.save 此种方式可以hdf...
  • keras 模型、结构、权重的保存

    千次阅读 2018-11-20 10:28:43
    如何将训练好的网络进行保存,我们可以用pickle或cPickle来保存Keras模型,同时我们可以用下面的方法: 一、保存整个模型 model.save(filepath)将Keras模型和权重保存在一个HDF5文件中,该文件将包含: 模型的...
  • 一、如何保存 Keras 模型? 1.保存/加载整个模型(结构 + 权重 + 优化器状态) 不建议使用 pickle 或 cPickle 来保存 Keras 模型。 你可以使用model.save(filepath)将 Keras 模型保存到单个 HDF5 文件中,该文件...
  • Keras模型保存笔记

    2018-10-31 08:35:53
    整理自Keras官方文档 https://keras-cn.readthedocs.io/en/latest/for_beginners/FAQ/#save_model ... 1.Keras保存训练好的模型 1) 使用model.save(filepath)将Keras模型...
  • keras模型保存pb模型

    千次阅读 2019-07-18 16:45:41
    https://github.com/amir-abdi/keras_to_tensorflow
  • 主要介绍了keras模型保存为tensorflow的二进制模型方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了keras 模型参数,模型保存,中间结果输出操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • keras模型保存和加载

    千次阅读 2019-06-04 22:43:00
    keras模型保存和加载与tensorflow不同,keras中的模型保存和加载通常是保存成hdf5格式。 keras的模型保存分为多种情况。 一、不保存模型只显示大概结构 model.summary() 这个函数会打印模型结构,但是仅仅是...
  • keras模型保存为pb模型

    千次阅读 2019-05-06 10:27:18
    github 链接地址:https://github.com/amir-abdi/keras_to_tensorflow
  • keras保存模型

    2018-09-19 13:22:47
    model.save(filepath)将Keras模型和权重保存在一个HDF5文件中,该文件将包含: 模型的结构,以便重构该模型 模型的权重 训练配置(损失函数,优化器等) 优化器的状态,以便于从上次训练中断的地方开始 保存模型...
  • 主要介绍了解决keras模型保存h5文件提示无此目录问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • keras模型保存和使用

    千次阅读 2018-04-13 14:44:07
    keras只包含两种神经网络模型,分别是Sequantial模型和泛化模型模型保存和使用方法如下:1、只保存和使用模型结构,不包含配置和权重 #保存成json格式的文件 json_string = model.to_json() open('my_model_...
  • 保存Keras训练的模型

    千次阅读 2017-03-14 11:58:44
    保存Keras训练的模型 不推荐使用pickle或cPickle。 (1) 如果只保存模型结构,代码如下: [python] view plain copy # save as JSON  json_string = model.to_json()  #...
  • keras 保存模型和加载模型

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,422
精华内容 6,168
关键字:

保存keras模型