Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
This post was edited and submitted for review 20 hours ago .
So I am trying out an open-source model to get my camera to detect the emotion of my face. This is the code I tried:
from keras. preprocessing import image
face_cascade = cv2. CascadeClassifier ( cv2. data . haarcascades + 'haarcascade_frontalface_default.xml' )
cap = cv2. VideoCapture ( 0 )
#face expression recognizer initialization
from keras. models import model_from_json
from tensorflow. keras . models import Sequential, Model
model = model_from_json ( open ( "facial_expression_model_structure.json" , "r" ) . read ())
model. load_weights ( 'facial_expression_model_weights.h5' ) #load weights
emotions = ( 'angry' , 'disgust' , 'fear' , 'happy' , 'sad' , 'surprise' , 'neutral' )
#img = cv2.imread('C:/Users/IS96273/Desktop/hababam.jpg')
gray = cv2. cvtColor ( img, cv2. COLOR_BGR2GRAY )
faces = face_cascade. detectMultiScale ( gray, 1.3 , 5 )
print ( faces ) #locations of detected faces
cv2. rectangle ( img, ( x,y ) , ( x+w,y+h ) , ( 255 , 0 , 0 ) , 2 ) #draw rectangle to main image
roi_gray = gray [ y:y+h, x:x+w ]
roi_color = img [ y:y+h, x:x+w ]
detected_face = img [ int ( y ) : int ( y+h ) , int ( x ) : int ( x+w )] #crop detected face
detected_face = cv2. cvtColor ( detected_face, cv2. COLOR_BGR2GRAY ) #transform to gray scale
detected_face = cv2. resize ( detected_face, ( 48 , 48 )) #resize to 48x48
img_pixels = image. img_to_array ( detected_face )
img_pixels = np. expand_dims ( img_pixels, axis = 0 )
img_pixels /= 255 #pixels are in scale of [0, 255]. normalize all pixels in scale of [0, 1]
predictions = model. predict ( img_pixels ) #store probabilities of 7 expressions
#find max indexed array 0: angry, 1:disgust, 2:fear, 3:happy, 4:sad, 5:surprise, 6:neutral
max_index = np. argmax ( predictions [ 0 ])
emotion = emotions [ max_index ]
#write emotion text above rectangle
cv2. putText ( img, emotion, ( int ( x ) , int ( y )) , cv2. FONT_HERSHEY_PLAIN , 1 , ( 255 , 255 , 255 ) , 2 )
#process on detected face end
if cv2. waitKey ( 1 ) & 0xFF == ord ( 'q' ) : #press q to quit
<code>import numpy as np
import cv2
from keras.preprocessing import image
#opencv initialization
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
cap = cv2.VideoCapture(0)
#face expression recognizer initialization
from keras.models import model_from_json
from tensorflow.keras.models import Sequential, Model
model = model_from_json(open("facial_expression_model_structure.json", "r").read())
model.load_weights('facial_expression_model_weights.h5') #load weights
emotions = ('angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral')
while(True):
ret, img = cap.read()
#img = cv2.imread('C:/Users/IS96273/Desktop/hababam.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
print(faces) #locations of detected faces
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) #draw rectangle to main image
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
detected_face = img[int(y):int(y+h), int(x):int(x+w)] #crop detected face
detected_face = cv2.cvtColor(detected_face, cv2.COLOR_BGR2GRAY) #transform to gray scale
detected_face = cv2.resize(detected_face, (48, 48)) #resize to 48x48
img_pixels = image.img_to_array(detected_face)
img_pixels = np.expand_dims(img_pixels, axis = 0)
img_pixels /= 255 #pixels are in scale of [0, 255]. normalize all pixels in scale of [0, 1]
predictions = model.predict(img_pixels) #store probabilities of 7 expressions
#find max indexed array 0: angry, 1:disgust, 2:fear, 3:happy, 4:sad, 5:surprise, 6:neutral
max_index = np.argmax(predictions[0])
emotion = emotions[max_index]
#write emotion text above rectangle
cv2.putText(img, emotion, (int(x), int(y)), cv2.FONT_HERSHEY_PLAIN, 1, (255,255,255), 2)
#process on detected face end
cv2.imshow('img',img)
if cv2.waitKey(1) & 0xFF == ord('q'): #press q to quit
break
#kill open cv things
cap.release()
cv2.destroyAllWindows()
</code>
import numpy as np
import cv2
from keras.preprocessing import image
#opencv initialization
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
cap = cv2.VideoCapture(0)
#face expression recognizer initialization
from keras.models import model_from_json
from tensorflow.keras.models import Sequential, Model
model = model_from_json(open("facial_expression_model_structure.json", "r").read())
model.load_weights('facial_expression_model_weights.h5') #load weights
emotions = ('angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral')
while(True):
ret, img = cap.read()
#img = cv2.imread('C:/Users/IS96273/Desktop/hababam.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
print(faces) #locations of detected faces
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) #draw rectangle to main image
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
detected_face = img[int(y):int(y+h), int(x):int(x+w)] #crop detected face
detected_face = cv2.cvtColor(detected_face, cv2.COLOR_BGR2GRAY) #transform to gray scale
detected_face = cv2.resize(detected_face, (48, 48)) #resize to 48x48
img_pixels = image.img_to_array(detected_face)
img_pixels = np.expand_dims(img_pixels, axis = 0)
img_pixels /= 255 #pixels are in scale of [0, 255]. normalize all pixels in scale of [0, 1]
predictions = model.predict(img_pixels) #store probabilities of 7 expressions
#find max indexed array 0: angry, 1:disgust, 2:fear, 3:happy, 4:sad, 5:surprise, 6:neutral
max_index = np.argmax(predictions[0])
emotion = emotions[max_index]
#write emotion text above rectangle
cv2.putText(img, emotion, (int(x), int(y)), cv2.FONT_HERSHEY_PLAIN, 1, (255,255,255), 2)
#process on detected face end
cv2.imshow('img',img)
if cv2.waitKey(1) & 0xFF == ord('q'): #press q to quit
break
#kill open cv things
cap.release()
cv2.destroyAllWindows()
So this code actually works fine on Jupyter Notebook but once I copied and pasted it to VSCode there is the following error regarding the line 18 where model = model_from_json(open("facial_expression_model_structure.json", "r").read())
:
< code > Traceback ( most recent call last ) :
File "c:...<directory where the Python file is>...DeepFace2.py" , line 19 , in < module >
model = model_from_json ( open ( "facial_expression_model_structure.json" , "r" ) . read ())
File "C:<my username>.virtualenvsmp_sort-dE8CVHaGlibsite-packageskerassrcmodelsmodel.py" , line 583 , in model_from_json
return serialization_lib. deserialize_keras_object (
File "C:<my username>.virtualenvsmp_sort-dE8CVHaGlibsite-packageskerassrcsavingserialization_lib.py" , line 694 , in deserialize_keras_object
cls = _retrieve_class_or_fn (
File "C:<my username>.virtualenvsmp_sort-dE8CVHaGlibsite-packageskerassrcsavingserialization_lib.py" , line 812 , in _retrieve_class_or_fn
TypeError: Could not locate class 'Sequential' . Make sure custom classes are decorated with `@keras. saving . register_keras_serializable () `. Full object config: { 'class_name' : 'Sequential' , 'backend' : 'tensorflow' , 'config' : [{ 'class_name' : 'Conv2D' , 'config' : { 'dtype' : 'float32' , 'padding' : 'valid' , 'filters' : 64 , 'trainable' : True , 'activation' : 'relu' , 'bias_constraint' : None, 'strides' : [ 1 , 1 ] , 'name' : 'conv2d_1' , 'dilation_rate' : [ 1 , 1 ] , 'kernel_initializer' : { 'class_name' : 'VarianceScaling' , 'config' : { 'distribution' : 'uniform' , 'mode' : 'fan_avg' , 'scale' : 1.0 , 'seed' : None }} , 'bias_regularizer' : None, 'kernel_constraint' : None, 'kernel_regularizer' : None, 'data_format' : 'channels_last' , 'use_bias' : True , 'batch_input_shape' : [ None, 48 , 48 , 1 ] , 'activity_regularizer' : None, 'kernel_size' : [ 5 , 5 ] , 'bias_initializer' : { 'class_name' : 'Zeros' , 'config' : {}}}} , { 'class_name' : 'MaxPooling2D' , 'config' : { 'name' : 'max_pooling2d_1' , 'padding' : 'valid' , 'pool_size' : [ 5 , 5 ] , 'data_format' : 'channels_last' , 'trainable' : True , 'strides' : [ 2 , 2 ]}} , { 'class_name' : 'Conv2D' , 'config' : { 'padding' : 'valid' , 'filters' : 64 , 'trainable' : True , 'activation' : 'relu' , 'bias_constraint' : None, 'strides' : [ 1 , 1 ] , 'name' : 'conv2d_2' , 'dilation_rate' : [ 1 , 1 ] , 'kernel_initializer' : { 'class_name' : 'VarianceScaling' , 'config' : { 'distribution' : 'uniform' , 'mode' : 'fan_avg' , 'scale' : 1.0 , 'seed' : None }} , 'bias_regularizer' : None, 'kernel_constraint' : None, 'kernel_regularizer' : None, 'data_format' : 'channels_last' , 'use_bias' : True , 'activity_regularizer' : None, 'kernel_size' : [ 3 , 3 ] , 'bias_initializer' : { 'class_name' : 'Zeros' , 'config' : {}}}} , { 'class_name' : 'Conv2D' , 'config' : { 'padding' : 'valid' , 'filters' : 64 , 'trainable' : True , 'activation' : 'relu' , 'bias_constraint' : None, 'strides' : [ 1 , 1 ] , 'name' : 'conv2d_3' , 'dilation_rate' : [ 1 , 1 ] , 'kernel_initializer' : { 'class_name' : 'VarianceScaling' , 'config' : { 'distribution' : 'uniform' , 'mode' : 'fan_avg' , 'scale' : 1.0 , 'seed' : None }} , 'bias_regularizer' : None, 'kernel_constraint' : None, 'kernel_regularizer' : None, 'data_format' : 'channels_last' , 'use_bias' : True , 'activity_regularizer' : None, 'kernel_size' : [ 3 , 3 ] , 'bias_initializer' : { 'class_name' : 'Zeros' , 'config' : {}}}} , { 'class_name' : 'AveragePooling2D' , 'config' : { 'name' : 'average_pooling2d_1' , 'padding' : 'valid' , 'pool_size' : [ 3 , 3 ] , 'data_format' : 'channels_last' , 'trainable' : True , 'strides' : [ 2 , 2 ]}} , { 'class_name' : 'Conv2D' , 'config' : { 'padding' : 'valid' , 'filters' : 128 , 'trainable' : True , 'activation' : 'relu' , 'bias_constraint' : None, 'strides' : [ 1 , 1 ] , 'name' : 'conv2d_4' , 'dilation_rate' : [ 1 , 1 ] , 'kernel_initializer' : { 'class_name' : 'VarianceScaling' , 'config' : { 'distribution' : 'uniform' , 'mode' : 'fan_avg' , 'scale' : 1.0 , 'seed' : None }} , 'bias_regularizer' : None, 'kernel_constraint' : None, 'kernel_regularizer' : None, 'data_format' : 'channels_last' , 'use_bias' : True , 'activity_regularizer' : None, 'kernel_size' : [ 3 , 3 ] , 'bias_initializer' : { 'class_name' : 'Zeros' , 'config' : {}}}} , { 'class_name' : 'Conv2D' , 'config' : { 'padding' : 'valid' , 'filters' : 128 , 'trainable' : True , 'activation' : 'relu' , 'bias_constraint' : None, 'strides' : [ 1 , 1 ] , 'name' : 'conv2d_5' , 'dilation_rate' : [ 1 , 1 ] , 'kernel_initializer' : { 'class_name' : 'VarianceScaling' , 'config' : { 'distribution' : 'uniform' , 'mode' : 'fan_avg' , 'scale' : 1.0 , 'seed' : None }} , 'bias_regularizer' : None, 'kernel_constraint' : None, 'kernel_regularizer' : None, 'data_format' : 'channels_last' , 'use_bias' : True , 'activity_regularizer' : None, 'kernel_size' : [ 3 , 3 ] , 'bias_initializer' : { 'class_name' : 'Zeros' , 'config' : {}}}} , { 'class_name' : 'AveragePooling2D' , 'config' : { 'name' : 'average_pooling2d_2' , 'padding' : 'valid' , 'pool_size' : [ 3 , 3 ] , 'data_format' : 'channels_last' , 'trainable' : True , 'strides' : [ 2 , 2 ]}} , { 'class_name' : 'Flatten' , 'config' : { 'name' : 'flatten_1' , 'trainable' : True }} , { 'class_name' : 'Dense' , 'config' : { 'use_bias' : True , 'trainable' : True , 'activation' : 'relu' , 'activity_regularizer' : None, 'name' : 'dense_1' , 'kernel_initializer' : { 'class_name' : 'VarianceScaling' , 'config' : { 'distribution' : 'uniform' , 'mode' : 'fan_avg' , 'scale' : 1.0 , 'seed' : None }} , 'bias_regularizer' : None, 'kernel_regularizer' : None, 'units' : 1024 , 'bias_constraint' : None, 'kernel_constraint' : None, 'bias_initializer' : { 'class_name' : 'Zeros' , 'config' : {}}}} , { 'class_name' : 'Dropout' , 'config' : { 'name' : 'dropout_1' , 'trainable' : True , 'rate' : 0.2 }} , { 'class_name' : 'Dense' , 'config' : { 'use_bias' : True , 'trainable' : True , 'activation' : 'relu' , 'activity_regularizer' : None, 'name' : 'dense_2' , 'kernel_initializer' : { 'class_name' : 'VarianceScaling' , 'config' : { 'distribution' : 'uniform' , 'mode' : 'fan_avg' , 'scale' : 1.0 , 'seed' : None }} , 'bias_regularizer' : None, 'kernel_regularizer' : None, 'units' : 1024 , 'bias_constraint' : None, 'kernel_constraint' : None, 'bias_initializer' : { 'class_name' : 'Zeros' , 'config' : {}}}} , { 'class_name' : 'Dropout' , 'config' : { 'name' : 'dropout_2' , 'trainable' : True , 'rate' : 0.2 }} , { 'class_name' : 'Dense' , 'config' : { 'use_bias' : True , 'trainable' : True , 'activation' : 'softmax' , 'activity_regularizer' : None, 'name' : 'dense_3' , 'kernel_initializer' : { 'class_name' : 'VarianceScaling' , 'config' : { 'distribution' : 'uniform' , 'mode' : 'fan_avg' , 'scale' : 1.0 , 'seed' : None }} , 'bias_regularizer' : None, 'kernel_regularizer' : None, 'units' : 7 , 'bias_constraint' : None, 'kernel_constraint' : None, 'bias_initializer' : { 'class_name' : 'Zeros' , 'config' : {}}}}] , 'keras_version' : '2.0.8' }
<code>Traceback (most recent call last):
File "c:...<directory where the Python file is>...DeepFace2.py", line 19, in <module>
model = model_from_json(open("facial_expression_model_structure.json", "r").read())
File "C:<my username>.virtualenvsmp_sort-dE8CVHaGlibsite-packageskerassrcmodelsmodel.py", line 583, in model_from_json
return serialization_lib.deserialize_keras_object(
File "C:<my username>.virtualenvsmp_sort-dE8CVHaGlibsite-packageskerassrcsavingserialization_lib.py", line 694, in deserialize_keras_object
cls = _retrieve_class_or_fn(
File "C:<my username>.virtualenvsmp_sort-dE8CVHaGlibsite-packageskerassrcsavingserialization_lib.py", line 812, in _retrieve_class_or_fn
raise TypeError(
TypeError: Could not locate class 'Sequential'. Make sure custom classes are decorated with `@keras.saving.register_keras_serializable()`. Full object config: {'class_name': 'Sequential', 'backend': 'tensorflow', 'config': [{'class_name': 'Conv2D', 'config': {'dtype': 'float32', 'padding': 'valid', 'filters': 64, 'trainable': True, 'activation': 'relu', 'bias_constraint': None, 'strides': [1, 1], 'name': 'conv2d_1', 'dilation_rate': [1, 1], 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_constraint': None, 'kernel_regularizer': None, 'data_format': 'channels_last', 'use_bias': True, 'batch_input_shape': [None, 48, 48, 1], 'activity_regularizer': None, 'kernel_size': [5, 5], 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'MaxPooling2D', 'config': {'name': 'max_pooling2d_1', 'padding': 'valid', 'pool_size': [5, 5], 'data_format': 'channels_last', 'trainable': True, 'strides': [2, 2]}}, {'class_name': 'Conv2D', 'config': {'padding': 'valid', 'filters': 64, 'trainable': True, 'activation': 'relu', 'bias_constraint': None, 'strides': [1, 1], 'name': 'conv2d_2', 'dilation_rate': [1, 1], 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_constraint': None, 'kernel_regularizer': None, 'data_format': 'channels_last', 'use_bias': True, 'activity_regularizer': None, 'kernel_size': [3, 3], 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'Conv2D', 'config': {'padding': 'valid', 'filters': 64, 'trainable': True, 'activation': 'relu', 'bias_constraint': None, 'strides': [1, 1], 'name': 'conv2d_3', 'dilation_rate': [1, 1], 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_constraint': None, 'kernel_regularizer': None, 'data_format': 'channels_last', 'use_bias': True, 'activity_regularizer': None, 'kernel_size': [3, 3], 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'AveragePooling2D', 'config': {'name': 'average_pooling2d_1', 'padding': 'valid', 'pool_size': [3, 3], 'data_format': 'channels_last', 'trainable': True, 'strides': [2, 2]}}, {'class_name': 'Conv2D', 'config': {'padding': 'valid', 'filters': 128, 'trainable': True, 'activation': 'relu', 'bias_constraint': None, 'strides': [1, 1], 'name': 'conv2d_4', 'dilation_rate': [1, 1], 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_constraint': None, 'kernel_regularizer': None, 'data_format': 'channels_last', 'use_bias': True, 'activity_regularizer': None, 'kernel_size': [3, 3], 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'Conv2D', 'config': {'padding': 'valid', 'filters': 128, 'trainable': True, 'activation': 'relu', 'bias_constraint': None, 'strides': [1, 1], 'name': 'conv2d_5', 'dilation_rate': [1, 1], 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_constraint': None, 'kernel_regularizer': None, 'data_format': 'channels_last', 'use_bias': True, 'activity_regularizer': None, 'kernel_size': [3, 3], 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'AveragePooling2D', 'config': {'name': 'average_pooling2d_2', 'padding': 'valid', 'pool_size': [3, 3], 'data_format': 'channels_last', 'trainable': True, 'strides': [2, 2]}}, {'class_name': 'Flatten', 'config': {'name': 'flatten_1', 'trainable': True}}, {'class_name': 'Dense', 'config': {'use_bias': True, 'trainable': True, 'activation': 'relu', 'activity_regularizer': None, 'name': 'dense_1', 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_regularizer': None, 'units': 1024, 'bias_constraint': None, 'kernel_constraint': None, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'Dropout', 'config': {'name': 'dropout_1', 'trainable': True, 'rate': 0.2}}, {'class_name': 'Dense', 'config': {'use_bias': True, 'trainable': True, 'activation': 'relu', 'activity_regularizer': None, 'name': 'dense_2', 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_regularizer': None, 'units': 1024, 'bias_constraint': None, 'kernel_constraint': None, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'Dropout', 'config': {'name': 'dropout_2', 'trainable': True, 'rate': 0.2}}, {'class_name': 'Dense', 'config': {'use_bias': True, 'trainable': True, 'activation': 'softmax', 'activity_regularizer': None, 'name': 'dense_3', 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_regularizer': None, 'units': 7, 'bias_constraint': None, 'kernel_constraint': None, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}], 'keras_version': '2.0.8'}
</code>
Traceback (most recent call last):
File "c:...<directory where the Python file is>...DeepFace2.py", line 19, in <module>
model = model_from_json(open("facial_expression_model_structure.json", "r").read())
File "C:<my username>.virtualenvsmp_sort-dE8CVHaGlibsite-packageskerassrcmodelsmodel.py", line 583, in model_from_json
return serialization_lib.deserialize_keras_object(
File "C:<my username>.virtualenvsmp_sort-dE8CVHaGlibsite-packageskerassrcsavingserialization_lib.py", line 694, in deserialize_keras_object
cls = _retrieve_class_or_fn(
File "C:<my username>.virtualenvsmp_sort-dE8CVHaGlibsite-packageskerassrcsavingserialization_lib.py", line 812, in _retrieve_class_or_fn
raise TypeError(
TypeError: Could not locate class 'Sequential'. Make sure custom classes are decorated with `@keras.saving.register_keras_serializable()`. Full object config: {'class_name': 'Sequential', 'backend': 'tensorflow', 'config': [{'class_name': 'Conv2D', 'config': {'dtype': 'float32', 'padding': 'valid', 'filters': 64, 'trainable': True, 'activation': 'relu', 'bias_constraint': None, 'strides': [1, 1], 'name': 'conv2d_1', 'dilation_rate': [1, 1], 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_constraint': None, 'kernel_regularizer': None, 'data_format': 'channels_last', 'use_bias': True, 'batch_input_shape': [None, 48, 48, 1], 'activity_regularizer': None, 'kernel_size': [5, 5], 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'MaxPooling2D', 'config': {'name': 'max_pooling2d_1', 'padding': 'valid', 'pool_size': [5, 5], 'data_format': 'channels_last', 'trainable': True, 'strides': [2, 2]}}, {'class_name': 'Conv2D', 'config': {'padding': 'valid', 'filters': 64, 'trainable': True, 'activation': 'relu', 'bias_constraint': None, 'strides': [1, 1], 'name': 'conv2d_2', 'dilation_rate': [1, 1], 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_constraint': None, 'kernel_regularizer': None, 'data_format': 'channels_last', 'use_bias': True, 'activity_regularizer': None, 'kernel_size': [3, 3], 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'Conv2D', 'config': {'padding': 'valid', 'filters': 64, 'trainable': True, 'activation': 'relu', 'bias_constraint': None, 'strides': [1, 1], 'name': 'conv2d_3', 'dilation_rate': [1, 1], 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_constraint': None, 'kernel_regularizer': None, 'data_format': 'channels_last', 'use_bias': True, 'activity_regularizer': None, 'kernel_size': [3, 3], 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'AveragePooling2D', 'config': {'name': 'average_pooling2d_1', 'padding': 'valid', 'pool_size': [3, 3], 'data_format': 'channels_last', 'trainable': True, 'strides': [2, 2]}}, {'class_name': 'Conv2D', 'config': {'padding': 'valid', 'filters': 128, 'trainable': True, 'activation': 'relu', 'bias_constraint': None, 'strides': [1, 1], 'name': 'conv2d_4', 'dilation_rate': [1, 1], 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_constraint': None, 'kernel_regularizer': None, 'data_format': 'channels_last', 'use_bias': True, 'activity_regularizer': None, 'kernel_size': [3, 3], 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'Conv2D', 'config': {'padding': 'valid', 'filters': 128, 'trainable': True, 'activation': 'relu', 'bias_constraint': None, 'strides': [1, 1], 'name': 'conv2d_5', 'dilation_rate': [1, 1], 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_constraint': None, 'kernel_regularizer': None, 'data_format': 'channels_last', 'use_bias': True, 'activity_regularizer': None, 'kernel_size': [3, 3], 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'AveragePooling2D', 'config': {'name': 'average_pooling2d_2', 'padding': 'valid', 'pool_size': [3, 3], 'data_format': 'channels_last', 'trainable': True, 'strides': [2, 2]}}, {'class_name': 'Flatten', 'config': {'name': 'flatten_1', 'trainable': True}}, {'class_name': 'Dense', 'config': {'use_bias': True, 'trainable': True, 'activation': 'relu', 'activity_regularizer': None, 'name': 'dense_1', 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_regularizer': None, 'units': 1024, 'bias_constraint': None, 'kernel_constraint': None, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'Dropout', 'config': {'name': 'dropout_1', 'trainable': True, 'rate': 0.2}}, {'class_name': 'Dense', 'config': {'use_bias': True, 'trainable': True, 'activation': 'relu', 'activity_regularizer': None, 'name': 'dense_2', 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_regularizer': None, 'units': 1024, 'bias_constraint': None, 'kernel_constraint': None, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'Dropout', 'config': {'name': 'dropout_2', 'trainable': True, 'rate': 0.2}}, {'class_name': 'Dense', 'config': {'use_bias': True, 'trainable': True, 'activation': 'softmax', 'activity_regularizer': None, 'name': 'dense_3', 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_regularizer': None, 'units': 7, 'bias_constraint': None, 'kernel_constraint': None, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}], 'keras_version': '2.0.8'}
I checked on VSCode and it shows that my keras version is 3.5.0 and my tensorflow version is 2.17.0 on VSCode which seems to be the latest version. So what seems to be the problem on VSCode?
Edit: Added the full traceback as someone in the comments asked for it.