Я строю CNN, используя Keras, со следующим Conv1D в качестве моего первого слоя:
cnn.add(Conv1D(
filters=512,
kernel_size=3,
strides=2,
activation=hyperparameters["activation_fn"],
kernel_regularizer=getattr(regularizers, hyperparameters["regularization"])(hyperparameters["regularization_rate"]),
input_shape=(1000, 1),
))
Я тренируюсь с функцией:
cnn.fit(
x=train_df["payload"].tolist(),
y=train_df["label"].tolist(),
batch_size=hyperparameters["batch_size"],
epochs=hyperparameters["epochs"],
)
В которой train_dfэто кадр данных pandas из двух столбцов, где для каждой строки метка представляет собой целое число (0 или 1), а полезная нагрузка представляет собой массив с плавающей точкой, дополненный нулями / усеченный до длины 1000. Общее количество обучающих примеров в train_df составляет 15641.
Модель компилируется, но во время обучения я получаю эту ошибку:
ValueError: Error when checking model input: the list of Numpy arrays that you are passing to your model is not the size the model expected. Expected to see 1 array(s), but instead got the following list of 15641 arrays: [array([[0.09019608],
[0.01176471],
[0.01176471],
[0. ],
[0.30196078],
[0. ],
[0. ],
[0. ],
[0. ],
[0....
Я просмотрел этот пост и попытался изменить свой ввод на ndarray 1000-сплавные списки, но в итоге появилась другая ошибка:
ValueError: Error when checking input: expected conv1d_1_input to have 3 dimensions, but got array with shape (15641, 1000)
Есть идеи?