Я пытаюсь использовать слой Conv1D в качестве входного слоя в моей нейронной сети на Keras, который, как я понимаю, является слоем временной свертки. Я понимаю, что он принимает входные данные и использует размер ядра (с набором функций) для создания нового сложного слоя. Мои тренировочные данные являются длинным горячим закодированным тензором длины 231. Я изо всех сил пытаюсь понять, как / что является входом слоя Conv1D?
Мой x_train.shape([1])
равен 231.
Когда я использую:
n_cols = x_train.shape([1])
model.add(Conv1D(128, 11, activation = 'relu', input_shape = (n_cols,)))
(я использую 11, потому что, насколько я понимаю, я получаю 11 значений из одного горячего вектора за один раз)
Я получаю сообщение об ошибке:
ValueError: Input 0 of layer conv1d is incompatible with the layer: expected ndim=3, found ndim=2. Full shape received: [None, 231]
Полная трассировка:
Traceback (most recent call last):
File "/Volumes/Hajar's HDD/MSc_data/large_proteins/ml_network.py", line 18, in <module>
model.add(Conv1D(128, 11, activation = 'relu', input_shape = (n_cols,)))
File "/anaconda3/lib/python3.7/site- packages/tensorflow/python/training/tracking/base.py", line 456, in _method_wrapper
result = method(self, *args, **kwargs)
File "/anaconda3/lib/python3.7/site- packages/tensorflow/python/keras/engine/sequential.py", line 169, in add
layer(x)
File "/anaconda3/lib/python3.7/site- packages/tensorflow/python/keras/engine/base_layer.py", line 589, in __call__
self.name)
File "/anaconda3/lib/python3.7/site- packages/tensorflow/python/keras/engine/input_spec.py", line 124, in assert_input_compatibility
str(x.shape.as_list()))
Я пытался изменить размер ядра, но все равно получаю ту же ошибку. Я думаю, может быть, мне нужен еще один входной слой раньше. Для размера ядра, это число функций, то есть 231?