Я пытаюсь подогнать модель ConvNet с помощью генератора подгонки Keras, но он не работает при попытке передать данные на входной слой. Он говорит мне, что ожидает трехмерного ввода, но мой ввод только два. Если я добавлю канал в мою форму ввода, он запросит четыре измерения.
Вот точная ошибка, когда я не добавляю параметр канала:
ValueError: Error when checking input: expected input_1 to have 3 dimensions, but got array with shape (1000, 597)
И снова, когда я изменяю форму ввода на (1000, 597, 1):
ValueError: Error when checking input: expected input_1 to have 4 dimensions, but got array with shape (1000, 597)
Вот код для моей модели:
def initialise_model():
input_layer = Input((1, 1000, 597))
conv_layer_1 = Conv2D(filters=30, kernel_size=(10, 1), strides=(1, 1), padding="same", activation="relu")(input_layer)
conv_layer_2 = Conv2D(filters=30, kernel_size=(8, 1), strides=(8, 1), padding="same", activation="relu")(conv_layer_1)
conv_layer_3 = Conv2D(filters=40, kernel_size=(6, 1), strides=(6, 1), padding="same", activation="relu")(conv_layer_2)
conv_layer_4 = Conv2D(filters=50, kernel_size=(5, 1), strides=(1, 1), padding="same", activation="relu")(conv_layer_3)
conv_layer_5 = Conv2D(filters=50, kernel_size=(5, 1), strides=(1, 1), padding="same", activation="relu")(conv_layer_4)
flatten_layer = Flatten()(conv_layer_5)
dense_layer = Dense(1024, activation="relu")(flatten_layer)
label_layer = Dense(1024, activation="relu")(dense_layer)
output_layer = Dense(1, activation="linear")(label_layer)
model = Model(inputs=input_layer, outputs=output_layer)
adam_optimiser = keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08)
model.compile(optimizer=adam_optimiser, loss="mean_squared_error", metrics=["accuracy", "mean_squared_error"])
return model
И мой генератор подгонки:
model = initialise_model()
early_stopping = EarlyStopping(monitor="val_loss", min_delta=0, patience=0, verbose=1, restore_best_weights=True)
model.fit_generator(generator, epochs=1, steps_per_epoch=1, verbose=2, callbacks=[early_stopping])
Стоит отметить, что выходная мощность моего генератора соответствует ожидаемой, справильной формы.
Большое спасибо