TypeError(‘Keyword argument not understood:‘, ‘***‘) in keras.models load_model

人工智能91

TypeError('Keyword argument not understood:', '***') in keras.models load_model

一、问题描述

  1. 在google colab上面训练完,model.save(filepath_save)正常进行保存后,再使用
from keras.models import load_model
model = load_model(model_file)

TypeError(‘Keyword argument not understood:‘, ‘***‘) in keras.models load_model

二、解决方案

  1. 方法一:确认一下是不是两次的keras和tf的版本不同,有人的解决方法:我只是通过在本地计算机上同时升级tensorflow和keras来解决了它。
    TypeError(‘Keyword argument not understood:‘, ‘***‘) in keras.models load_model
pip install --upgrade tensorflow
pip install --upgrade keras

他的意思就是版本问题,我们在谷歌的colab上面训练完,模型保存到本地,在本地调用的时候两个环境的包的版本不同导致的加载模型报错。
那么调整本地的相关包的版本就可以了。

就和下面这个回答是类似的,保存模型的时候的版本和加载模型的时候的版本不一致,可能会导致这个问题。
那就进行版本的统一即可。
TypeError(‘Keyword argument not understood:‘, ‘***‘) in keras.models load_model


import tensorflow as tf
import keras

print(keras.__version__)
print(tf.__version__)

但是我的还是在colab上面读取,环境是同一个,所以这个方法并不能解决我的这个具体问题。

  1. 方法二、model.load_weights() 仅读取权重
    大致思路就是,我们开始用的是models.load_model() 读取网络、权重。现在因为自定义模型中的Keyword argument not understood,(更加深入的原因还不清楚),那么我们先构建模型结构,然后再model.load_weights()读取权重,是能实现我们最初的目的的。
    目前,我是用这个方法解决了自定义模型网络结构的模型的参数再读取导入。

我也遇到了这个问题,I also have this problem I've tried a lot of methods and found that this method can be used.


model = TextAttBiRNN(maxlen, max_features, embedding_dims).get_model()
model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

model_file = "/content/drive/My Drive/dga/output_data/model_lstm_att_test_v6.h5"
model.load_weights(model_file)

引用参考:
https://stackoverflow.com/questions/63308383/typeerrorkeyword-argument-not-understood-groups-in-keras-models-load-mod
https://stackoverflow.com/questions/63966872/keras-load-model-is-causing-typeerror-keyword-argument-not-understood-when-u

Original: https://blog.csdn.net/qq_41914687/article/details/115917338
Author: HIccup_Li
Title: TypeError(‘Keyword argument not understood:‘, ‘***‘) in keras.models load_model