No module named 'tensorflow.compat'

Question:

I’m trying to use the code from the Teachable Machine website:

from keras.models import load_model
from PIL import Image, ImageOps
import numpy as np

# Load the model
model = 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('<IMAGE_PATH>')
#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)
# 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)

but when running the code, I get the following error:
ModuleNotFoundError: No module named 'tensorflow.compat'

I tried running the code on two separate machines, uninstalling and re-installing tensorflow, pip, keras, nothing seemed to help.

I’m using Python 3.9 and tensorflow 2.8.0

Asked By: laviRZ

||

Answers:

Which version of TensorFlow you’re using? Use this command on terminal to see which version you’re using:

python -c 'import tensorflow as tf; print(tf.__version__)'  # for Python 2
python3 -c 'import tensorflow as tf; print(tf.__version__)'  # for Python 3

Or

>>> import tensorflow as tf
>>> print(tf.__version__)
2.4.1

Then try to install tensorflow==1.15

pip install tensorflow==1.15
import tensorflow.compat.v2 as tf

This just happened to me but I figured it out. Your .py script filename is the same with one of the files of the tensorflow library. You can just rename your python script and it will work fine.

Answered By: user14591825