gpt4 book ai didi

python - 加载保存的优化器时出错。 keras python 覆盆子

转载 作者:太空狗 更新时间:2023-10-30 00:37:49 27 4
gpt4 key购买 nike

我在 linux 64 机器上训练了一个 keras 顺序模型并保存到一个 .h5 文件。

有了这台 PC,我可以毫无问题地加载模型和进行预测。

现在我正在安装了 keras、tensorflow、h5py 和 python3 的 Raspberry Pi 3 中实现预测。

当我加载模型时

from keras.models import load_model
model = load_model('model-0.6358.h5')

,我得到:

usr/lib/python3.4/importlib/_bootstrap.py:321: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
return f(*args, **kwds)

/usr/local/lib/python3.4/dist-packages/keras/models.py:291: UserWarning: Error in loading the saved optimizer state. As a result, your model is starting with a freshly initialized optimizer.
warnings.warn('Error in loading the saved optimizer '

但是...看起来它预测正确。

我怎样才能避免该警告消息?

最佳答案

load_model 首先使用保存的权重构建保存的模型架构,然后尝试使用保存的权重构建保存的优化器。

但是,您会收到一条错误消息,因为保存的优化器权重的形状与优化器根据加载模型的架构期望的权重形状不匹配。

当我尝试保存并重新加载具有设置为 trainable=False 的内部子模型的模型时,我使用 Keras 2.1.4 遇到了这个问题。当您保存模型时,此信息似乎不会被保留,因此在重新初始化内部子模型后设置为 trainable=True 并且优化器期望保存的权重比实际保存的更多。如果这可能是您遇到的问题,我在 this bug-report 中描述了一个解决方法:

  1. 明确设置所有内部模型层的可训练性
  2. 在保存之前,所有层的可训练性标志必须设置为模型编译时的状态

如果你想摆脱警告并且在保存后不需要优化器,你也可以在没有优化器的情况下保存你的模型:使用 model.save(filename, include_optimizer=False)

关于python - 加载保存的优化器时出错。 keras python 覆盆子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49195189/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com