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

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:', 'step_dim')

在这里插入图片描述

二、解决方案

  1. 方法一:确认一下是不是两次的keras和tf的版本不同,有人的解决方法:我只是通过在本地计算机上同时升级tensorflow和keras来解决了它。
    在这里插入图片描述
pip install --upgrade tensorflow
pip install --upgrade keras

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

就和下面这个回答是类似的,保存模型的时候的版本和加载模型的时候的版本不一致,可能会导致这个问题。
那就进行版本的统一即可。
在这里插入图片描述

# 查看版本
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.

# first,build model
model = TextAttBiRNN(maxlen, max_features, embedding_dims).get_model()
model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])
              
# second, load weights: I solved the problem with this:
model_file = "/content/drive/My Drive/dga/output_data/model_lstm_att_test_v6.h5"
model.load_weights(model_file)
# then,we will find the modle can be use.
# in this way,I avoided the previous questions.

引用参考:
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

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值