0

I am working on Python 3.6, macOS and Coursera's Guided Project of Facial Expression Recognition.

This is model.py code.

from tensorflow.keras.models import model_from_json

import numpy as np

import tensorflow as tf

config = tf.compat.v1.ConfigProto()

config.gpu_options.per_process_gpu_memory_fraction = 0.15

session = tf.compat.v1.Session(config=config)


class FacialExpressionModel(object):

    EMOTIONS_LIST = ["Angry", "Disgust",
                     "Fear", "Happy",
                     "Neutral", "Sad",
                     "Surprise"]

    def __init__(self, model_json_file, model_weights_file):
        # load model from JSON file
        with open(model_json_file, "r") as json_file:
            loaded_model_json = json_file.read()
            self.loaded_model = model_from_json(loaded_model_json)

        # load weights into the new model
        self.loaded_model.load_weights(model_weights_file)
        self.loaded_model._make_predict_function()

    def predict_emotion(self, img):
        self.preds = self.loaded_model.predict(img)
        return FacialExpressionModel.EMOTIONS_LIST[np.argmax(self.preds)]

The error for this is as follows:

/usr/local/bin/python3.6 
/Users/apple/Downloads/Facial_Expression_Recognition/camera.py

2020-09-25 11:03:09.532649: I 
tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU instructions in performance-critical operations:  AVX2 FMA

To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.

2020-09-25 11:03:09.546790: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x7fd8577eb710 initialized for platform Host (this does not guarantee that XLA will be used). Devices:

2020-09-25 11:03:09.546804: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version

Traceback (most recent call last):
  File "/Users/apple/Downloads/Facial_Expression_Recognition/camera.py", line 6, in <module>

    model = FacialExpressionModel("model.json", "model_weights.h5")

  File "/Users/apple/Downloads/Facial_Expression_Recognition/model.py", line 28, in __init__

    self.loaded_model._make_predict_function()

AttributeError: 'Sequential' object has no attribute '_make_predict_function'

Process finished with exit code 1

1 Answer 1

1

_make_predict_function() is from old version of Keras. Try to install Tensorflow 1.15 (with Keras 2.2.4-tf) instead of 2.x.x as you are trying to call old function on new model_from_json.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.