未知的初始值设定项:加载Keras模型时,GlorotUniform
keras
machine-learning
python
tensorflow
5
0

我通过Google colab训练了CNN(VGG),并生成了.h5文件。现在的问题是,我可以通过google colab成功预测我的输出,但是当我下载经过.h5训练的模型文件并尝试在笔记本电脑上预测输出时,加载模型时出现错误。

这是代码:

import tensorflow as tf
from tensorflow import keras
import h5py

# Initialization

loaded_model = keras.models.load_model('./train_personCount_model.h5')

错误:

ValueError: Unknown initializer: GlorotUniform
参考资料:
Stack Overflow
收藏
评论
共 6 个回答
高赞 时间 活跃

我遇到了同样的问题。更改后:

from tensorflow import keras

至:

import keras

生活再次值得生活。

收藏
评论

我有一个相同的问题,并以此方式解决。只是不要将优化器与模型一起保存!只需像这样更改保存行:

the_model.save(file_path,True/False,False)

第二个参数告诉Keras如果文件不存在则覆盖模型,第三个参数告诉它不要将优化器与模型一起保存。


编辑 :今天我又在另一个系统上遇到了问题,这次没有帮助我。所以我将模型conf保存为json并将权重保存为h5,并使用它们在另一台计算机上重建模型。你可以这样保存像这样:

json = model.to_json()
# Save the json on a file
model.save_weights(weights_filepath,save_format="h5")

像这样重建模型:

# load the json file
# here i use json as loaded content of json file
model = keras.models.model_from_json(json)
model.load_weights(weights_file_path)
收藏
评论

我解决了这个问题:

之前:

from keras.models import load_model
classifierLoad = load_model('model/modeltest.h5')

为我工作

import tensorflow as tf 
classifierLoad = tf.keras.models.load_model('model/modeltest.h5')
收藏
评论

改变中

from keras.models import load_model

from tensorflow.keras.models import load_model

解决了我的问题!

要消除错误,请直接从Keras或TensorFlow导入所有内容。将它们混合在同一项目中可能会导致问题。

收藏
评论

哇,我刚刚花了6个小时来解决这个问题。Dmitri在这里发布了一个解决方案: 我在Google colab上训练了一个keras模型。现在无法将其本地加载到我的系统上。

我基本上只是在这里重新发布它,因为它对我有用。

这看起来像是keras中的某种序列化错误。如果用下面的CustomObjectScope包裹您的load_model,那么所有东西都应该工作。

import keras
from keras.models import load_model
from keras.utils import CustomObjectScope
from keras.initializers import glorot_uniform

with CustomObjectScope({'GlorotUniform': glorot_uniform()}):
        model = load_model('imdb_mlp_model.h5')
收藏
评论

没有任何答案的对我帮助的东西

custom_objects={'GlorotUniform': glorot_uniform()}

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号