Python Tensorflow throws error “cannot import name ‘to_categorical’ from ‘keras.utils’” when you are using Tensorflow version 2 but implementing the older syntax.
Solution
Instead of using this syntax for importing keras library –
from keras.utils import to_categorical
use this syntax –
from tf.keras.utils import to_categorical
Why this error occurred?
Because when Tensorflow upgraded from V1 to V2, Keras library got integrated into it too. So, in order to access to_categorical form keras.utils, we need to use tf.keras.utils.
Code Example
from tf.keras.utils import to_categorical a = to_categorical([0, 1, 2, 3], num_classes=4) a = tf.constant(a, shape=[4, 4]) print(a)
The output of above code will be –
tf.Tensor( [[1. 0. 0. 0.] [0. 1. 0. 0.] [0. 0. 1. 0.] [0. 0. 0. 1.]], shape=(4, 4), dtype=float32)
Conclusion
keras is the part of tensorflow library from version 2. So, to access any method within it, we need to use tf.keras now.