Error in "from keras.utils import to_categorical"

I have probem with this code , why ?

the code :

import cv2 import numpy as np from PIL import Image import os import numpy as np import cv2 import os import h5py import dlib from imutils import face_utils from keras.models import load_model import sys from keras.models import Sequential from keras.layers import Conv2D, MaxPooling2D,Dropout from keras.layers import Dense, Activation, Flatten from keras.utils import to_categorical from keras import backend as K from sklearn.model_selection import train_test_split from Model import model from keras import callbacks # Path for face image database path = 'dataset' recognizer = cv2.face.LBPHFaceRecognizer_create() detector = cv2.CascadeClassifier("haarcascade_frontalface_default.xml"); def downsample_image(img): img = Image.fromarray(img.astype('uint8'), 'L') img = img.resize((32,32), Image.ANTIALIAS) return np.array(img) # function to get the images and label data def getImagesAndLabels(path): path = 'dataset' imagePaths = [os.path.join(path,f) for f in os.listdir(path)] faceSamples=[] ids = [] for imagePath in imagePaths: #if there is an error saving any jpegs try: PIL_img = Image.open(imagePath).convert('L') # convert it to grayscale except: continue img_numpy = np.array(PIL_img,'uint8') id = int(os.path.split(imagePath)[-1].split(".")[1]) faceSamples.append(img_numpy) ids.append(id) return faceSamples,ids print ("\n [INFO] Training faces now.") faces,ids = getImagesAndLabels(path) K.clear_session() n_faces = len(set(ids)) model = model((32,32,1),n_faces) faces = np.asarray(faces) faces = np.array([downsample_image(ab) for ab in faces]) ids = np.asarray(ids) faces = faces[:,:,:,np.newaxis] print("Shape of Data: " + str(faces.shape)) print("Number of unique faces : " + str(n_faces)) ids = to_categorical(ids) faces = faces.astype('float32') faces /= 255. x_train, x_test, y_train, y_test = train_test_split(faces,ids, test_size = 0.2, random_state = 0) checkpoint = callbacks.ModelCheckpoint('trained_model.h5', monitor='val_acc', save_best_only=True, save_weights_only=True, verbose=1) model.fit(x_train, y_train, batch_size=32, epochs=10, validation_data=(x_test, y_test), shuffle=True,callbacks=[checkpoint]) # Print the numer of faces trained and end program print("enter code here`\n [INFO] " + str(n_faces) + " faces trained. Exiting Program") 

the output: ------------------ File "D:\my hard sam\ماجستير\سنة ثانية\البحث\python\Real-Time-Face-Recognition-Using-CNN-master\Real-Time-Face-Recognition-Using-CNN-master\02_face_training.py", line 16, in <module> from keras.utils import to_categorical ImportError: cannot import name 'to_categorical' from 'keras.utils' (C:\Users\omar\PycharmProjects\SnakGame\venv\lib\site-packages\keras\utils\__init__.py) 
3

4 Answers

Keras is now fully intregrated into Tensorflow. So, importing only Keras causes error.

It should be imported as:

from tensorflow.keras.utils import to_categorical 

Avoid importing as:

from keras.utils import to_categorical 

It is safe to use from tensorflow.keras. instead of from keras. while importing all the necessary modules.

from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D,Dropout from tensorflow.keras.layers import Dense, Activation, Flatten from tensorflow.keras.utils import to_categorical from tensorflow.keras import backend as K from sklearn.model_selection import train_test_split from tensorflow.keras import callbacks 
1

Alternatively, you can use:

from keras.utils.np_utils import to_categorical

Please note the np_utils after keras.uitls

First thing is you can install this keras.utils with

$!pip install keras.utils 

or another simple method just import to_categorical module as

$ tensorflow.keras.utils import to_categorical 

because keras comes under tensorflow package

y_train = tensorflow.keras.utils.to_categorical(y_train, num_classes) y_test = tensorflow.keras.utils.to_categorical(y_test, num_classes) 

It solves my problem!

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like