ValueError:层“lstm_cell_2”需要 3 个变量,但在加载过程中收到 0 个变量

问题描述 投票:0回答:3

我正在使用 Keras 使用以下代码在 Google Colab 上保存我的 Bi-Lstm 模型

with open('BiLstm_model.pkl', 'wb') as writer:
    pickle.dump(lstm_model, writer)

现在,当我使用本地电脑中的代码加载此模型时,它显示了图像中所示的错误。

lstm_model = pickle.load(open('BiLstm_model.pkl', 'rb'))

Error Message

每当我在 Google colab 中加载模型时,它都可以正常工作,但是当我将其加载到本地 PC 中时,就会出现错误。我已经尝试过使用不同的格式和库来保存模型并加载它。另外,我已经安装了与 Google Colab 中指定和使用的相同版本的软件包。

python-3.x keras deep-learning google-colaboratory
3个回答
0
投票

解决方案是尝试使用 hdf5 保存和加载模型。这是下面的代码片段

lstm_model.save('BiLstm_model.h5')

并使用

加载它
from tensorflow.keras.models import load_model
lstm_model = load_model('./models/BiLstm_model.h5')

0
投票

问题可能是您将模型保存在与本地计算机上使用的版本不同的 TensorFlow 版本中。

要解决此问题,请尝试安装与将模型另存为 .keras 文件到本地计算机时使用的相同 TensorFlow 版本的 Google Collab。

我遇到了与此类似的问题,并使用正确的 TensorFlow 版本为我解决了这个问题。


0
投票

我也遇到了同样的问题。诀窍是检查本地计算机上的张量流版本是否与保存模型时 Google Colab 运行的版本相同。

tf. __version__

接下来,我必须在 Google colab 中重新加载模型(同时运行我保存模型的旧版本 Tensorflow)

!pip install tensorflow==*the version you need*

然后您应该重新保存并下载您的模型,但作为 .h5 文件类型而不是 .keras

model = tf.keras.models.load_model('/content/drive/My Drive/yourmodel.keras')
model.save("yourmodel.h5") #
!ls
from google.colab import files
files.download('yourmodel.h5')

现在您可以将模型加载到本地计算机上。 (我通过 Google Drive 在 Colab 中加载了我的模型,但您可以按照您想要的任何方式执行此操作)

© www.soinside.com 2019 - 2024. All rights reserved.