Я решаю проблему классификации, используя CNN. У меня есть файл data.csv (15000 выборок / строк и 271 столбец), где 1-й столбец является меткой класса (всего 4 класса), а остальные 270 столбцов являются объектами (6 различных сигналов длиной 45, сцепленных, т.е. 6X45 = 270).
Проблема:
Я хочу предоставить одну выборку длиной 270 в виде вектора (6 × 45, все 6 сигналов имеют разное значение), но я получаю ошибку в измерениях, когда преобразовываю одну выборку в (6 строк, 45 столбцов) в свертке.
Моя модель CNN:
X, y = load_data()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
num_classes = 4
X_train = X_train.reshape(X_train.shape[0], 6, 45).astype('float32')
X_test = X_test.reshape(X_test.shape[0], 6, 45).astype('float32')
model = Sequential()
model.add(Conv1D(filters=32, kernel_size=5, input_shape=(6, 45)))
model.add(MaxPooling1D(pool_size=5 ))
model.add(Flatten())
model.add(Dense(1000, activation='relu'))
model.add(Dense(num_classes, activation='softmax'))
Как изменить мои данные о том, что CNN рассматривает каждую выборку как 6 сигналов длиной 45 и сворачивается с керналом окна 5.