tf.keras
我使用新版本训练了一个简单的 MLP 模型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)
当我尝试进行预测时出现错误prediction_result = model.predict(test_data, batch_size=138)
。的test_data
形状为(69, 28)
,因此它小于batch_size
138 的形状。这是错误,似乎问题来自第一个 dropout 层:
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) 和 tensorflow (1.12.0) 中没有问题。我该如何解决这个问题?我没有更多数据用于测试,所以我无法更改 test_data 集以拥有更多数据点!