Я тренирую классификатор со следующей структурой и параметрами:
__________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
==================================================================================================
encoder_input (InputLayer) (None, 567, 1) 0
__________________________________________________________________________________________________
conv1d_1 (Conv1D) (None, 189, 32) 128 encoder_input[0][0]
__________________________________________________________________________________________________
conv1d_2 (Conv1D) (None, 63, 64) 6208 conv1d_1[0][0]
__________________________________________________________________________________________________
conv1d_3 (Conv1D) (None, 21, 100) 19300 conv1d_2[0][0]
__________________________________________________________________________________________________
flatten_1 (Flatten) (None, 2100) 0 conv1d_3[0][0]
__________________________________________________________________________________________________
z_mean (Dense) (None, 20) 42020 flatten_1[0][0]
__________________________________________________________________________________________________
z_log_var (Dense) (None, 20) 42020 flatten_1[0][0]
__________________________________________________________________________________________________
z (Lambda) (None, 20) 0 z_mean[0][0]
z_log_var[0][0]
__________________________________________________________________________________________________
dense_1 (Dense) (None, 64) 1344 z[0][0]
__________________________________________________________________________________________________
dense_2 (Dense) (None, 128) 8320 dense_1[0][0]
__________________________________________________________________________________________________
dense_3 (Dense) (None, 200) 25800 dense_2[0][0]
__________________________________________________________________________________________________
dense_10 (Dense) (None, 4) 804 dense_3[0][0]
==================================================================================================
Total params: 145,944
Trainable params: 145,944
Non-trainable params: 0
Все слои, кроме слоев dense
, взяты из другой модели.Здесь можно обучить только параметры слоя dense
.Вот фрагмент кода для обучения:
for layer in classifier.layers[:-4]:
layer.trainable = False
classifier.fit(x_train, y_train,
epochs=50,
batch_size=8,
validation_data=(x_val, y_val)
)
classifier.save_weights('cnn_hhar.h5')
Но я получаю это InvalidArgumentError: Incompatible shapes: [32] vs. [4536]
[[{{node logistic_loss/mul}}]]
Что не так с этим кодом?
Редактировать: Код доступен здесь . Он в основном адаптирован из кода для Variational Autoencoder.Я взял часть кодировщика и добавил к ней слои FC для задачи классификации.