In this Python tutorial, we will discuss the error “**module ‘TensorFlow’ has no attribute ‘mul’**“. And we’ll also cover the following topics:

- Attributeerror module ‘tensorflow’ has no attribute ‘mul’
- Attributeerror module ‘tensorflow’ has no attribute ‘multinominal’
- Attributeerror module ‘tensorflow.Keras.layers’ has no attribute ‘multiheadattention’
- Attributeerror module ‘tensorflow._api.v2.distribute’ has no attribute ‘multiworkermirroredstrategy’
- Attributeerror module ‘tensorflow.compat.v1.’ has no attribute ‘mul’

## Attributeerror module ‘tensorflow’ has no attribute ‘mul’

- In this section, we will discuss the error AttributeError:”module ‘Tensorflow’ has no attribute
**‘session’**in Python. - To do this task first we will import the TensorFlow library with tf alias where tf represents the TensorFlow and it is used for numerical computation problems.
- Next, we will create a variable in the form of tensors and assign a
**tf.constant()**function. In Python, this function takes a constant value that represents the value that does not modify and it also initialized an object like an array or list. - In the given example we have assigned the scaler value and datatype as an argument. Now we are going to multiply the shared two variables named
**‘l’**and**‘m’**. To do this task first we learn the concept of**tf.session()**. - In Python, this function is used to perform some operations in graphs. It will check the nodes of graphs and in this example, we will create the session like
**tf.session()**and launch the session with**tf.session()**as Val where Val is the session name.

**Example**:

```
import tensorflow as tf
input_tensor_1 = tf.constant(67,dtype="int32",name="input_tensor_1")
input_tensor_2 = tf.constant(89,dtype="int32",name="input_tensor_2")
result= tf.mul(input_tensor_1,input_tensor_2)
with tf.Session() as val:
new_output=val.run(result)
print(new_output)
```

In this example first, we have created two input tensors by using the** tf.constant() **function and within this function, we have assigned the integer value and datatype as an argument. Next, we used the **tf.mul()** function for multiplying both the tensors.

Here is the Screenshot of the following given code.

As you can see in the Screenshot the output displays the error AttributeError: module **‘TensorFlow’** has no attribute **‘mul’**.

**Reason: **The possible reason for this error is that the** tf.session()** attribute is not available in Tensorflow’s latest version (TensorFlow2.0) and also **tf.mul()** has been depreciated from the latest version of tensorflow 2.x.

Now let’s see the solution to this

```
import tensorflow as tf
tf.compat.v1.disable_eager_execution()
input_tensor_1 = tf.constant(67,dtype="int32",name="input_tensor_1")
input_tensor_2 = tf.constant(89,dtype="int32",name="input_tensor_2")
result= tf.math.multiply(input_tensor_1,input_tensor_2)
with tf.compat.v1.Session() as val:
new_output=val.run(result)
print(new_output)
```

In the above program we have used the tf.compat.v1.disable_eager_execution() function and it is used for the difficult programs and it can be used in **TensorFlow2.0** instead of** tf.session()** function.

In the latest version 2.0, the **tf.session()** has been removed and if you are using the old version of TensorFlow then it works in complex programs.

Now the **eager_execution()** function works in **Tensorflow2.0** instead of session. This function is easy as compared to the session because it implements the operations without creating the graphs.

You can refer to the below Screenshot

This is how we can solve the error attributeerror module ‘tensorflow’ has no attribute **‘mul’**

Read: TensorFlow Learning Rate Scheduler

## Attributeerror module ‘tensorflow’ has no attribute ‘multinominal’

- In this section, we will discuss the error attributeerror module ‘tensorflow’ has no attribute ‘multinominal’.
- In this example, we are going to use the
**tf.multinominal()**function. This function is available in TensorFlow**1.x**version and the multinomial simulates the results of n trials in which each trial’s results follow a categorical distribution, such as when tossing a k-sided die repeatedly.

Example:

```
import tensorflow as tf
tf.compat.v1.disable_eager_execution()
samples = tf.multinomial(tf.log([[10., 10.]]), 5)
with tf.compat.v1.Session() as val:
new_output=val.run(samples)
print(new_output)
```

You can refer to the below Screenshot

The solution to this error

In this example we will use the latest version of multinominal which is **tf.compat.v1.multinominal() **and it is available in the latest version of TensorFlow.

**Syntax**:

Here is the Syntax of **tf.compat.v1.multinominal() **function in TensorFlow

```
tf.compat.v1.multinomial(
logits, num_samples, seed=None, name=None, output_dtype=None
)
```

- It consists of a few parameters
**logits**: 2-D [batch size, num classes] shaped tensor. The unnormalized log probabilities for all classes are represented by each slice.**num_samples**: Number of independent samples to be drawn for each slice of a row,**0 to D**.**seed**: This parameter is used to define a random seed for the distribution.**name**: This parameter specifies the name of the operation and by default its value is None.

```
import tensorflow as tf
tf.compat.v1.disable_eager_execution()
samples = tf.compat.v1.multinomial(tf.math.log([[10., 10.]]), 5)
with tf.compat.v1.Session() as val:
new_output=val.run(samples)
print(new_output)
```

You can refer to the below Screenshot

As you can see in the Screenshot the error has been solved.

Read: Batch Normalization TensorFlow

## Attributeerror module ‘tensorflow.Keras.layers’ has no attribute ‘multiheadattention’

- Here we will discuss how to solve the error attributeerror module
**‘tensorflow.Keras.layers’ has no attribute ‘multiheadattention**‘.

**Example**:

```
import tensorflow as tf
layer = tf.MultiHeadAttention(num_heads=2, key_dim=2, attention_axes=(2, 3))
input_tensor = tf.keras.Input(shape=[17, 28, 38, 89])
output_tensor = layer(input_tensor, input_tensor)
print(output_tensor.shape)
```

Here is the Screenshot of the following given code

The solution to this error.

**Example**:

```
import tensorflow as tf
layer = tf.keras.layers.MultiHeadAttention(num_heads=2, key_dim=2, attention_axes=(2, 3))
input_tensor = tf.keras.Input(shape=[17, 28, 38, 89])
output_tensor = layer(input_tensor, input_tensor)
print(output_tensor.shape)
```

Here is the Output of the following given code

This is how we can solve the attributeerror module tensorflow.Keras_.layers has no attribute multiheadattention.

Read: Tensorflow custom loss function

## Attributeerror module ‘tensorflow._api.v2.distribute’ has no attribute ‘multiworkermirroredstrategy’

- In this section, we will discuss the error AttributeError:”module ‘Tensorflow’ has no attribute
**‘session’**in Python. - To maintain variables in sync, it makes use of CollectiveOps’ multi-worker all-reduce implementation. A collective operation is a single operation in the TensorFlow graph that allows the TensorFlow runtime to automatically select an all-reduce algorithm based on the hardware, network topology, and tensor sizes.

Read: TensorFlow next_batch

## Attributeerror module ‘tensorflow.compat.v1.’ has no attribute ‘mul’

- Here we are going to discuss the attribute error module
**‘tensorflow.compat.v1’ has no attribute ‘mul’.** - To do this task first we will import the TensorFlow library with tf alias where tf represents the TensorFlow and it is used for numerical computation problems.
- Next, we will create a variable in the form of tensors and assign a
**tf.constant()**function. In Python, this function takes a constant value that represents the value that does not modify and it also initialized an object like an array or list.

**Example**:

```
import tensorflow as tf
tf.compat.v1.disable_eager_execution()
input_tensor_1 = tf.constant([14,28,98,11],dtype="int32",name="input_tensor_1")
input_tensor_2 = tf.constant([15,34,24,5],dtype="int32",name="input_tensor_2")
result= tf.mul(input_tensor_1,input_tensor_2)
with tf.compat.v1.Session() as val:
new_output=val.run(result)
print(new_output)
```

In this example, we have created a tensor by using the **tf.constant()** function, and within this function, we have set the list of values along with the datatype **‘int32’**. Next, we used the **tf.mul()** function and assign the input tensors to it. **tf.compat.v1.disable_eager_execution() **function and it is used for the difficult programs and it can be used in **TensorFlow2.0** instead of **tf.session()** function.

Here is the Screenshot of the following given code.

The solution to this error.

```
import tensorflow as tf
tf.compat.v1.disable_eager_execution()
input_tensor_1 = tf.constant([14,28,98,11],dtype="int32",name="input_tensor_1")
input_tensor_2 = tf.constant([15,34,24,5],dtype="int32",name="input_tensor_2")
result= tf.math.multiply(input_tensor_1,input_tensor_2)
with tf.compat.v1.Session() as val:
new_output=val.run(result)
print(new_output)
```

You can refer to the below Screenshot.

As you can see in the Screenshot the error has been solved of Attributeerror module tensorflow.compat.v1.-has no attribute mul.

You may also like to read the following Python TensorFlow tutorials.

- TensorFlow global average pooling
- Module ‘tensorflow’ has no attribute ‘Function’
- Tensorflow embedding_lookup
- TensorFlow mean squared error
- Tensorflow iterate over tensor
- TensorFlow Learning Rate Scheduler

In this Python tutorial, we have discussed the error “**module ‘TensorFlow’ has no attribute ‘mul’**“. And we have covered the following topics:

- Attributeerror module ‘tensorflow’ has no attribute ‘mul’
- Attributeerror module ‘tensorflow’ has no attribute ‘multinominal’
- Attributeerror module ‘tensorflow.Keras.layers’ has no attribute ‘multiheadattention’
- Attributeerror module ‘tensorflow._api.v2.distribute’ has no attribute ‘multiworkermirroredstrategy’
- Attributeerror module ‘tensorflow.compat.v1.’ has no attribute ‘mul’

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.