4
votes

I'm trying to load keras model using the code snippet below:

    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)

When I execute the above code I get following error:

File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\keras\engine\base_layer.py", line 446, in from_config return cls(**config)

File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\keras\engine\input_layer.py", line 80, in init raise ValueError('Unrecognized keyword arguments:', kwargs.keys())

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

4
Can you share some information on your environment? Have you done any debugging? Also, please provide a minimal reproducible example.AMC
Please add to your question tensorflow version that you use. import tensorflow as tf; print(tf.__version__)Vlad
Tensorflow - 2.1 python 3.7Meitarb12
@מיתרבןברוך In which TensorFlow version you have trained the model which you are loading here?Tensorflow Warrior
Mine same error was resolve after upgrading the tensorflow version to 2.3.0. Refer github.com/tensorflow/tensorflow/issues/33479Kaustuv

4 Answers

2
votes

Just adding onto what Justin mentioned already. This issue was encountered when I tried to run a inference script using a model trained using TensorFlow 2.3.1 in an environment that had TensorFlow 1.15 installed.

1
votes

You should run it over following requirements

keras==2.2.4 tensorflow==1.15.0 pillow==7.0.0

0
votes

Check the version of tf when you are training the model and when you are loading the model. Both should be same version otherwise it is possible to occur such error. I had the same issue cause on google colab where i was training my model running on latest tf version whereas the version of tf was different in my machine where i tried to load that model. So before importing the tf i installed the same version of tf in google colab. And it worked like a charm.

0
votes

in tensorflow==2.5.0 in my case i trained model on 2.5.0 an tried to run the infrence for the .h5 model on tensorflow==1.11 and 1.15. and 2.1.0 but due to this extra layer which was not presentin before versions. https://www.tensorflow.org/versions/r2.5/api_docs/python/tf/keras/layers/experimental/preprocessing/Rescaling

This layer doesn’t exist in earlier versions of tensorflow.

Another problem I found was that there now is a “groups” keyword in the conv-2d layer that wasn’t there in previous versions of tensorflow.