Я хотел бы применить одномерную свертку к последовательности ДНК фиксированного размера, используя keras.
Последовательность ДНК имеет длину 45 оснований. Каждая последовательность была закодирована горячим способом. Есть один фильтр с размером ядра = 3. См. рисунок ниже:
У меня есть 1000 последовательностей для тренировки. Тогда форма x_train будет следующей: (1000, 45, 4).
Цель будет True/False с формой: (1000,)
Я пытался использовать keras следующим образом:
K.clear_session()
model = Sequential()
#add model layers
model.add(Conv1D(1, kernel_size=1, activation="relu", input_shape =(1000,45)))
#model.add(Flatten())
#model.add(Dense(2, activation="softmax"))
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit (x_train, y_train, эпохи = 10)
Но я получаю следующую ошибку:
ValueError: Error when checking input: expected conv1d_1_input to have shape (1000, 45) but got array with shape (45, 4)