У меня определена следующая модель CNN. он ожидает 1D векторного ввода длиной 501.
model = ml.models.Sequential()
model.add(ml.layers.Conv1D(filters=NUMBER_OF_FILTERS, kernel_size=KERNEL_SIZE, activation=ACTIVATION, input_shape=(None, 501)))
model.add(ml.layers.MaxPooling1D(pool_size=POOL_SIZE, padding='valid'))
model.add(ml.layers.Flatten())
model.add(ml.layers.Dense(HIDDEN_SIZE-1, activation=ACTIVATION))
Все же это вызывает ошибку значения:
ValueError: The last dimension of the inputs to `Dense` should be defined. Found `None`.
Я не уверен, почему Flatten не создает форму чего-то вроде(None, x)
, но вместо (None, None)
. В чем здесь проблема?
Это краткое описание модели:
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv1d (Conv1D) (None, None, 50) 250550
_________________________________________________________________
max_pooling1d (MaxPooling1D) (None, None, 50) 0
_________________________________________________________________
flatten (Flatten) (None, None) 0
=================================================================
Total params: 250,550
Trainable params: 250,550
Non-trainable params: 0
_________________________________________________________________