ValueError: ('Unrecognized keyword arguments:', dict_keys(['ragged'])) while loading keras model

Posted

技术标签:

【中文标题】ValueError: (\'Unrecognized keyword arguments:\', dict_keys([\'ragged\'])) while loading keras model【英文标题】:ValueError: ('Unrecognized keyword arguments:', dict_keys(['ragged'])) while loading keras modelValueError: ('Unrecognized keyword arguments:', dict_keys(['ragged'])) while loading keras model 【发布时间】:2020-07-02 14:07:30 【问题描述】:

我正在尝试使用下面的代码 sn-p 加载 keras 模型:

    from tensorflow import keras
    from PIL import Image, ImageOps
    import numpy as np

    # Disable scientific notation for clarity
    np.set_printoptions(suppress=True)

    # Load the model
    model = keras.models.load_model('keras_model.h5')

    # Create the array of the right shape to feed into the keras model
    # The 'length' or number of images you can put into the array is
    # determined by the first position in the shape tuple, in this case 1.
    data = np.ndarray(shape=(1, 224, 224, 3), dtype=np.float32)

    # Replace this with the path to your image
    image = Image.open("YES/1.jpg")

    #resize the image to a 224x224 with the same strategy as in TM2:
    #resizing the image to be at least 224x224 and then cropping from the center
    size = (224, 224)
    image = ImageOps.fit(image, size, Image.ANTIALIAS)

    #turn the image into a numpy array
    image_array = np.asarray(image)

    # display the resized image
    image.show()

    # Normalize the image
    normalized_image_array = (image_array.astype(np.float32) / 127.0) - 1

    # Load the image into the array
    data[0] = normalized_image_array

    # run the inference
    prediction = model.predict(data)
    print(prediction)

当我执行上述代码时,出现以下错误:

文件 "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\keras\engine\base_layer.py", 第 446 行,在 from_config 中 返回 cls(**config)

文件 "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\keras\engine\input_layer.py", 第 80 行,在 init 中 raise ValueError('无法识别的关键字参数:', kwargs.keys())

ValueError: ('Unrecognized keyword arguments:', dict_keys(['ragged']))

【问题讨论】:

你能分享一些关于你的环境的信息吗?你做过调试吗?另外,请提供minimal reproducible example。 请在您的问题中添加您使用的 tensorflow 版本。 import tensorflow as tf; print(tf.__version__) 张量流 - 2.1 python 3.7 @מיתרבןברוך 您在哪个 TensorFlow 版本中训练了您在此处加载的模型? 将 tensorflow 版本升级到 2.3.0 后,我的相同错误已解决。参考github.com/tensorflow/tensorflow/issues/33479 【参考方案1】:

只是添加贾斯汀已经提到的内容。当我尝试在安装了 TensorFlow 1.15 的环境中使用使用 TensorFlow 2.3.1 训练的模型运行推理脚本时遇到此问题。

【讨论】:

【参考方案2】:

您应该按照以下要求运行它

keras==2.2.4 张量流==1.15.0 枕头==7.0.0

【讨论】:

【参考方案3】:

在训练模型和加载模型时检查 tf 的版本。两者应该是相同的版本,否则可能会发生此类错误。我在 google colab 上遇到了同样的问题,我正在训练我的模型在最新的 tf 版本上运行,而我尝试加载该模型的机器中的 tf 版本不同。所以在导入 tf 之前,我在 google colab 中安装了相同版本的 tf。它就像一个魅力。

【讨论】:

【参考方案4】:

在 tensorflow==2.5.0 中,我在 2.5.0 上训练了模型,并尝试在 tensorflow==1.11 和 1.15 上运行 .h5 模型的 infrence。和 2.1.0 但由于这个额外的层在版本之前没有出现。 https://www.tensorflow.org/versions/r2.5/api_docs/python/tf/keras/layers/experimental/preprocessing/Rescaling

该层在早期版本的 tensorflow 中不存在。

我发现的另一个问题是,conv-2d 层中现在有一个“groups”关键字,这在之前的 tensorflow 版本中是没有的。

【讨论】:

以上是关于ValueError: ('Unrecognized keyword arguments:', dict_keys(['ragged'])) while loading keras model的主要内容,如果未能解决你的问题,请参考以下文章

ValueError: '对象对于所需数组来说太深'

ValueError:不支持多类格式

如何解决 raise ValueError("columns must have matching element counts") ValueError: columns mus

“ValueError:标签 ['timestamp'] 不包含在轴中”错误

ValueError:不支持连续[重复]

django:ValueError - 无法序列化