Я построил модель классификации изображений, но получаю сообщение об ошибке ValueError: Error when checking input: expected conv2d_28_input to have 4 dimensions, but got array with shape (341, 720, 3)
Я также изменил input_shape
в model.add
функции
Вот модель, которую я построил :
model = Sequential()
#3 Convolutional layers
input_shape = X.shape[1:]
model.add(Conv2D(64, (3,3), input_shape = X.shape[1:]))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(64, (3,3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(64, (3,3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.25))
#2 hidden layers
model.add(Flatten())
model.add(Dense(128))
model.add(Activation("relu"))
model.add(Dense(128))
model.add(Activation("relu"))
model.add(Dense(2))
model.add(Activation('softmax'))
model.compile(loss="sparse_categorical_crossentropy", optimizer="adam", metrics=['accuracy'])
history=model.fit(X,y, batch_size=6, epochs=5, validation_split=0.1)
Сохранение модели
model.save_weights("model.h5")
model.save('CNN.model')
Прогнозирование выходного класса
from keras.preprocessing.image import img_to_array, load_img
model = tf.keras.models.load_model("CNN.model")
image = load_img("/content/drive/My Drive/Images/Blackened/blackened-1.jpg") #image is stored here
final = img_to_array(image)
prediction = model.predict(final)
prediction = list(prediction[0])
print(CATEGORIES[prediction.index(max(prediction))])
Когда я запускаю последний блок кода, я получаю ошибку, упомянутую выше