Я обучил простую модель MLP, используя новую tf.keras
версию 2.2.4-tf
. Вот как выглядит модель:
input_layer = Input(batch_shape=(138, 28))
first_layer = Dense(30, activation=activation, name="first_dense_layer_1")(input_layer)
first_layer = Dropout(0.1)(first_layer, training=True)
second_layer = Dense(15, activation=activation, name="second_dense_layer")(first_layer)
out = Dense(1, name='output_layer')(second_layer)
model = Model(input_layer, out)
![enter image description here](https://i.stack.imgur.com/EGYqC.png)
Я получаю ошибку, когда пытаюсь сделать прогноз prediction_result = model.predict(test_data, batch_size=138)
. test_data
имеет форму (69, 28)
, поэтому он меньше, чем batch_size
, что составляет 138. Вот ошибка, похоже, проблема связана с первым выпадающим слоем:
tensorflow.python.framework.errors_impl.InvalidArgumentError: Incompatible shapes: [138,30] vs. [69,30]
[[node model/dropout/dropout/mul_1 (defined at ./mlp_new_tf.py:471) ]] [Op:__inference_distributed_function_1700]
То же решение работает без проблем в более старой версии keras (2.2.4) и tenorflow (1.12.0). Как я могу исправить проблему? У меня нет больше данных для теста, поэтому я не могу изменить набор test_data, чтобы иметь больше точек данных!