здесь я обновляю код, но возникла другая ошибка, о которой я упоминал ниже
# Part 1 - Building the CNN
# importing the Keras libraries and packages
from tensorflow import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Convolution2D
from tensorflow.keras.layers import MaxPooling2D
from tensorflow.keras.layers import Flatten
from tensorflow.keras.layers import Dense, Dropout
#import tensorflow as tf
# Initialing the CNN
classifier = Sequential()
# Step 1 - Convolutional Layer
classifier.add(Convolution2D(filters=32, kernel_size=3, padding="same", input_shape = (64, 64, 3), activation = 'relu'))
# step 2 - Pooling
classifier.add(MaxPooling2D(pool_size =2, strides=2, padding='valid'))
# Adding second convolution layer
classifier.add(Convolution2D(filters=32, kernel_size=3,padding="same", activation = 'relu'))
classifier.add(MaxPooling2D(pool_size =2, strides=2, padding='valid'))
# Adding 3rd Concolution Layer
classifier.add(Convolution2D(filters=64, kernel_size=3,padding="same", activation = 'relu'))
classifier.add(MaxPooling2D(pool_size =2, strides=2, padding='valid'))
# Step 3 - Flattening
classifier.add(Flatten())
# Step 4 - Full Connection
classifier.add(Dense(units=256, activation = 'relu'))
classifier.add(Dropout(0.5))
classifier.add(Dense(units=26, activation = 'softmax'))
# Compiling The CNN
classifier.compile(optimizer = 'adam',loss = 'categorical_crossentropy', metrics = ['accuracy'])
classifier.summary()
# Part 2 Fittting the CNN to the image
from tensorflow.keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator(rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
test_datagen = ImageDataGenerator(rescale=1./255)
training_set = train_datagen.flow_from_directory('F:/p/sign language recognition/Source Code/dataset/train',
target_size=(64, 64),
batch_size=32,
class_mode='categorical')
test_set = test_datagen.flow_from_directory('F:/p/sign language recognition/Source Code/dataset/test',
target_size=(64, 64),
batch_size=32,
class_mode='categorical')
model = classifier.fit_generator(training_set,
steps_per_epoch=4972,
epochs=25,
validation_data = test_set,
validation_steps = 24)
#Saving the model
import h5py
classifier.save('Trained_model.h5')
'''print(classifier.history.keys())
import matplotlib.pyplot as plt
# summarize history for accuracy
plt.plot(model.history['acc'])
plt.plot(model.history['val_acc'])
plt.title('model accuracy')
plt.ylabel('accuracy')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.show()
# summarize history for loss
plt.plot(classifier.history['loss'])
plt.plot(classifier.history['val_loss'])
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.show()'''
Traceback (последний вызов был последним):
File "F:/p/sign language recognition/Source Code/cnn_model.py", line 70, in <module>
validation_steps = 24)
File "C:\Users\rahul\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 1297, in fit_generator
steps_name='steps_per_epoch')
File "C:\Users\rahul\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_core\python\keras\engine\training_generator.py", line 265, in model_iteration
batch_outs = batch_function(*batch_data)
File "C:\Users\rahul\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 973, in train_on_batch
class_weight=class_weight, reset_metrics=reset_metrics)
File "C:\Users\rahul\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_core\python\keras\engine\training_v2_utils.py", line 253, in train_on_batch
extract_tensors_from_dataset=True)
File "C:\Users\rahul\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 2538, in _standardize_user_data
y, self._feed_loss_fns, feed_output_shapes)
File "C:\Users\rahul\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_core\python\keras\engine\training_utils.py", line 743, in check_loss_and_target_compatibility
' while using as loss `' + loss_name + '`. '
ValueError: A target array with shape (32, 24) was passed for an output of shape (None, 26) while using as loss `categorical_crossentropy`. This loss expects targets to have the same shape as the output.