Я все время получаю эту ошибку. Если я добавлю (None, IMG_SIZE, IMG_SIZE, 1), я получу эту ошибку. И если я удалю (IMG_SIZE, IMG_SIZE, 1) 'none', я получу ошибку времени компиляции. У других, которых я видел, были похожие проблемы по другим причинам. Любая помощь будет очень принята. Спасибо!
def convolutional_model():
from keras.utils import to_categorical
from keras.models import Sequential
from keras.layers import Conv2D
from keras.layers import MaxPooling2D
from keras.layers import Dense
from keras.layers import Flatten
from keras.optimizers import SGD
from keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.optimizers import RMSprop
from keras.layers import Dropout
from tensorflow import keras
# create model
model = Sequential()
# model.add(keras.Input(shape=(None, IMG_SIZE, IMG_SIZE, 1)))
# Convolutional layer 1 with 32 filters of kernel size[5,5]
model.add(Conv2D(filters=32, kernel_size=(5, 5), strides=(1, 1), activation='relu', input_shape=(IMG_SIZE, IMG_SIZE, 1)))
# Pooling layer 1 with pool size[2,2] and stride 2
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))
# Convolutional layer 2 with 64 filters of kernel size[5,5]
model.add(Conv2D(64, (5, 5), strides=(1, 1), activation='relu'))
# Pooling layer 2 with pool size[2,2] and stride 2
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))
model.add(Flatten())
# Dense layer whose output size is fixed in the hyper parameter:
model.add(Dense(units=32, activation='relu'))
# Dropout layer with dropout probability 0.4
model.add(Dropout(0.4))
# units is 2 because we have 2 classes to predict (cot or dog)
model.add(Dense(units=2, activation='softmax'))
# Compile model
# model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# compile model
model.compile(
optimizer=RMSprop(lr=0.001),
loss='binary_crossentropy',
metrics=['accuracy'])
return model
введите описание изображения здесь
подходящая модель
history = model.fit(x_train, steps_per_epoch=len(x_train),
validation_data=x_test, validation_steps=len(x_test), epochs=3, verbose=2)
ValueError: вход 0 слоя sequencetial_50 несовместим со слоем :: ожидалось min_ndim = 4, найдено ndim = 3. Получена полная форма: [Нет, 224, 224]