In this TensorFlow tutorial, I explain how to solve the error related to Modulenotfounderror no module named ‘tensorflow.keras.layers’.

In my recent project, when I updated the Tensorflow to the latest version, I found two errors when I ran the project **Modulenotfounderror no module named ‘tensorflow.keras.layers.embeddings’**, **Modulenotfounderror no module named ‘TensorFlow.keras.applications.ResNet’** and **Modulenotfounderror no module named ‘tensorflow.keras.layers.recurrent**.

Here, I will show how to fix these errors with a complete solution: import and use the **tensorflow.keras.layers** functions.

## Modulenotfounderror no module named ‘tensorflow.keras.layers’

This is the error module that can cause two other kinds of errors: Modulenotfounderror no module named ‘tensorflow.keras.layers.embeddings’ and Modulenotfounderror no module named ‘tensorflow.keras.layers.recurrent.

The solution of both errors is given below.

### Modulenotfounderror no module named ‘tensorflow.keras.layers.embeddings’

The error means Python cannot find the submodule **tensorflow.keras.layers.embeddings**.

There can be several reasons for this error; maybe you are importing the submodule from the incorrect path.

Or you have just updated the Tensorflow to the latest version, and this submodule has depreciated or moved to a different location.

Let me show one way this error can occur when importing the Embedding like this, as shown below.

`from tensorflow.keras.layers.embeddings import Embedding`

Look, the error occurs when you import the Embedding like that. To resolve this error, instead of importing Embedding from tensorflow.keras.layers.embedding, just import it from tensorflow.keras.layers as shown below.

```
from tensorflow.keras.layers import Embedding
print(Embedding)
```

As you can see, it doesn’t show the error Modulenotfounderror. No module is longer named ‘tensorflow.keras.layers.embeddings’.

Let me explain a little bit about embedding in TensorFlow.

- A dense vector of floating point values is an embedding (the length of the vector is a parameter you specify). The embedding values are trainable parameters rather than manually specified (weights learned by the model during training, in the same way a model learns weights for a dense layer).
- The
**Embedding()**function converts the positive number indexes into dense vectors.

The** **syntax of Embedding is given below:

`tf.keras.layers.Embedding(`

input_dim,

output_dim,

embeddings_initializer='uniform',

embeddings_regularizer=None,

activity_regularizer=None,

embeddings_constraint=None,

mask_zero=False,

input_length=None,

**kwargs

)

Where it consists of a few parameters:

**input_dim**: Size of the vocabulary expressed as the maximum integer index +1.**output_dim**: This parameter defines the integer value and represents the dense embedding dimensions.**embeddings_initializer**: This is an initializer for the embedding matrix.**mask_zero**: Boolean, indicating whether or not the input value 0 is a unique “padding” value that has to be hidden. This helps utilize recurrent layers, which may accept input of varying lengths.- If this is accurate, an exception will be thrown, and all subsequent model layers will need to support masking. If mask_zero is set to True, index 0 cannot be used in the vocabulary (input dim should equal the vocabulary’s size plus 1).

Let’s take an example.

```
import tensorflow as tf
import numpy as np
new_model = tf.keras.Sequential()
new_model.add(tf.keras.layers.Embedding(1000, 64,input_length=10))
random_num = np.random.randint(1000, size=(32, 10))
new_model.compile('rmsprop', 'mse')
new_result = new_model.predict(random_num )
print(new_result.shape)
```

From the output of the above code, you can see how to import and use the **Embedding() **function correctly. This is how to solve the error modulenotfounderror no module named tensorflow.keras_.layers.embeddings in TensorFlow.

Read: Module ‘tensorflow’ has no attribute ‘sparse_placeholder’

### Modulenotfounderror no module named ‘tensorflow.keras.layers.recurrent

The error means Python cannot find the module **tensorflow.keras.layres.recurrent**. The reason is that you have specified the incorrect location of the module, or you have updated the Tensorflow to the latest version, and the model has moved to a different location.

Let me show you how you come to this error.

`from tensorflow.keras.layers.recurrent import LSTM`

Look when you try to import the **LSTM** from the module **tensorflow.keras.layers.recurrent**, it shows the error. To resolve this error, make sure you have updated the tensorflow to the latest versions and use the below code to import the LSTM.

```
from tensorflow.keras.layers import LSTM
print(LSTM)
```

As you can see above, the output shows the error **modulenotfounderror no module named ‘tensorflow.keras.layers.recurrent**.

In the latest version of tensorflow, the module **tensorflow.keras.layers.recurrent** changed to **tensorflow.keras.layers.**

Now, let’s see the complete solution for importing and using the **LSTM** layer from the **tensorflow.keras.layers** module.

```
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.LSTM(units=64, input_shape=(10, 32)),
tf.keras.layers.Dense(units=1, activation='sigmoid')
])
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
import numpy as np
x_train = np.random.random((100, 10, 32))
y_train = np.random.randint(2, size=(100, 1))
model.fit(x_train, y_train, epochs=10, batch_size=32)
```

From the output of the above code, you can see how to import and use the **LSTM **function correctly from the submodule **tensorflow.keras.layers**. This is how to solve the error **Modulenotfounderror no module named ‘tensorflow.keras.layers.recurrent** in TensorFlow.

## Modulenotfounderror no module named ‘TensorFlow.keras.applications.ResNet’

Again, you are trying to import the module **‘TensorFlow.keras.applications.ResNet’** that doesn’t exist or move it to a different location.

The same reason is whether you have updated the TensorFlow and the submodule has moved to a different location within TensorFlow, or you have specified an incorrect path, or it may be depreciated.

When you import this submodule like this, as shown below.

Look, you get the error. To resolve this error, you must change how you import the ResNet.

Try this import method as shown below.

`from tensorflow.keras.applications import resnet`

Look, you successfully imported the resnet without getting any error like **Modulenotfounderror no module named ‘TensorFlow.keras.applications.resnet’**.

- Here, convolutional neural networks (CNNs) with ResNet are used for applications like image recognition.

If you don’t want to import like that, you downgrade your tensorflow version to **tensorflow=2.7.** You can execute the command below in your terminal or environment.

First, uninstall the current version of tensorflow.

```
pip uninstall tensorflow
!pip unistall tensorlfow // For Jupyter Notebook
```

Then, install version 2.7 using the below command.

```
pip install tensorflow==2.7
!pip install tensorflow==2.7 // For Jupyter Notebook
```

After performing the above steps, you can use your old method to import.

Now let me show you a complete example of importing and using resnet in tensorflow.

Here is the complete solution to the error, which means you won’t get the error if you import the resnet like this.

```
import keras
import keras.applications.resnet
from keras.applications.resnet import ResNet50
model = ResNet50(include_top=True, weights='imagenet', input_tensor=None, input_shape=None)
model.summary()
```

From the output of the above code, you can see how to import and use the **ResNet50 **function correctly. This is how to solve the error **Modulenotfounderror no module named ‘TensorFlow.keras.applications.ResNet’** in TensorFlow.

Read: Module ‘tensorflow’ has no attribute ‘truncated_normal’

## Conclusion

In this tensorflow tutorial, you learned how to solve the error related to **Modulenotfounderror no module named ‘tensorflow.keras.layers’**.

You solved three kinds of error **Modulenotfounderror no module named ‘tensorflow.keras.layers.embeddings’**, **Modulenotfounderror no module named ‘TensorFlow.keras.applications.ResNet’** and **Modulenotfounderror no module named ‘tensorflow.keras.layers.recurrent**.

Additionally, with a complete solution to each error, you learned how to import and use the module correctly.

you may like to read:

- ModuleNotFoundError: No module named ‘tensorflow.python.keras’
- Modulenotfounderror no module named ‘tensorflow.keras.utils.np_utils’
- Modulenotfounderror no module named ‘tensorflow.keras.utils.np_utils’

I am Bijay Kumar, a Microsoft MVP in SharePoint. Apart from SharePoint, I started working on Python, Machine learning, and artificial intelligence for the last 5 years. During this time I got expertise in various Python libraries also like Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc… for various clients in the United States, Canada, the United Kingdom, Australia, New Zealand, etc. Check out my profile.