使用Keras加载含有自定义层或函数的模型操作

 更新时间:2020-06-10 12:32:25   作者:佚名   我要评论(0)

当我们导入的模型含有自定义层或者自定义函数时,需要使用custom_objects来指定目标层或目标函数。
例如:
我的一个模型含有自定义层“SincConv1D”,需要使用下面的

当我们导入的模型含有自定义层或者自定义函数时,需要使用custom_objects来指定目标层或目标函数。

例如:

我的一个模型含有自定义层“SincConv1D”,需要使用下面的代码导入:

from keras.models import load_model
model = load_model('model.h5', custom_objects={'SincConv1D': SincConv1D})

如果不加custom_objects指定目标层Layer,则会出现以下报错:

ValueError: Unknown layer: SincConv1D

同样的,当我的模型含有自定义函数“my_loss”,需要使用下面的代码导入:

from keras.models import load_model
model = load_model('model.h5', custom_objects={'my_loss': my_loss})

补充知识:keras加载模型load_model报错——ValueError: Unknown layer: CRF

我就废话不多说了,大家还是直接看代码吧!

from keras.models import load_model
model = load_model(model_path)

会报错,需要在load_model函数中添加custom_objects参数,来声明自定义的层
(用keras搭建bilstm-crf,在训练模型时,使用的是:

from keras_contrib.layers.crf import CRF)

from keras_contrib.layers.crf import CRF, crf_loss, crf_viterbi_accuracy
model = load_model(model_path, custom_objects={"CRF": CRF, 'crf_loss': crf_loss,
                        'crf_viterbi_accuracy': crf_viterbi_accuracy})

以上这篇使用Keras加载含有自定义层或函数的模型操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

  • 使用Keras预训练模型ResNet50进行图像分类方式
  • keras小技巧——获取某一个网络层的输出方式
  • 使用Keras 实现查看model weights .h5 文件的内容
  • keras自定义回调函数查看训练的loss和accuracy方式

相关文章

  • 使用Keras加载含有自定义层或函数的模型操作

    使用Keras加载含有自定义层或函数的模型操作

    当我们导入的模型含有自定义层或者自定义函数时,需要使用custom_objects来指定目标层或目标函数。 例如: 我的一个模型含有自定义层“SincConv1D”,需要使用下面的
    2020-06-10
  • Java实现解析并生成xml原理实例详解

    Java实现解析并生成xml原理实例详解

    XML解析: * 解析xml可以做: * 如果xml作为配置文件:读取 * 如果xml作为传输文件:写,读 xml解析思想: * DOM:将文档加载进内存,形
    2020-06-10
  • 在keras 中获取张量 tensor 的维度大小实例

    在keras 中获取张量 tensor 的维度大小实例

    在进行keras 网络计算时,有时候需要获取输入张量的维度来定义自己的层。但是由于keras是一个封闭的接口。因此在调用由于是张量不能直接用numpy 里的A.shape()。这样
    2020-06-10
  • Python 字典中的所有方法及用法

    Python 字典中的所有方法及用法

    字典是Python中唯一内建的映射类型。字典中没有特殊的顺序,但都是存储在一个特定的键(key)下面,键可以是数字,字符串,甚至是元组 字典的使用 在某些情况下,字
    2020-06-10
  • Android 集成 google 登录并获取性别等隐私信息的实现代码

    Android 集成 google 登录并获取性别等隐私信息的实现代码

    前言 公司做海外产品的,集成的是 google 账号登录,账号信息、邮箱等这些不涉及隐私的按 google 的正常登录流程可以轻松实现 。但是一旦需要获取涉及隐私的信息就比
    2020-06-10
  • 详解C# FileStream类

    详解C# FileStream类

    C# FileStream类 在 C# 语言中文件读写流使用 FileStream 类来表示,FileStream 类主要用于文件的读写,不仅能读写普通的文本文件,还可以读取图像文件、声音文件
    2020-06-10
  • keras 解决加载lstm+crf模型出错的问题

    keras 解决加载lstm+crf模型出错的问题

    错误展示 new_model = load_model(“model.h5”) 报错: 1、keras load_model valueError: Unknown Layer :CRF 2、keras load_model valueError: Unknown loss f
    2020-06-10
  • sklearn线性逻辑回归和非线性逻辑回归的实现

    sklearn线性逻辑回归和非线性逻辑回归的实现

    线性逻辑回归 本文用代码实现怎么利用sklearn来进行线性逻辑回归的计算,下面先来看看用到的数据。 这是有两行特征的数据,然后第三行是数据的标签。 pyt
    2020-06-10
  • 对Keras中predict()方法和predict_classes()方法的区别说明

    对Keras中predict()方法和predict_classes()方法的区别说明

    1 predict()方法 当使用predict()方法进行预测时,返回值是数值,表示样本属于每一个类别的概率,我们可以使用numpy.argmax()方法找到样本以最大概率所属的类别作为
    2020-06-10
  • Python如何避免文件同名产生覆盖

    Python如何避免文件同名产生覆盖

    在一些不多的数据下载和生成的时候,我们倾向于直接保存为文件,当我们修改某些参数后再一次运行时,之前运行时生成的文件就被覆盖了。为了解决这个问题,这里提供几
    2020-06-10

最新评论