Keras模型-缺少训练点

时间:2018-08-11 01:41:49

标签: python tensorflow keras keras-layer

我有一个基于项目选择的模型。 115人中有10个人可以选择。

inputs = Input(batch_shape=(None, self.input_shape))
x = Dropout(0.4)(inputs)
x = Dense(self.input_shape, activation="relu")(x)
x = Dropout(0.2)(x)
x = Dense(self.input_shape, activation="relu")(x)
pick_output = Activation(PickActivation(), name="pick_output")(x)
model = Model(inputs=[inputs ], outputs=[pick_output])
model.compile(loss=[PickLoss()],
metrics=[PickAccuracy()],
optimizer='adam')

在训练模型时,我得到了一些不错的结果。

1st Epoch : 159/158 [==============================] - 241s 2s/step - loss: 3.7814 - pick_accuracy: 0.2414 - val_loss: 2.9308 - val_pick_accuracy: 0.4396
4th Epoch : 159/158 [==============================] - 221s 1s/step - loss: 2.6038 - pick_accuracy: 0.4581 - val_loss: 2.5397 - val_pick_accuracy: 0.4650

输入格式为暗淡= 1150(10个人* 115个可能的选择)。我选择了一个。

我要完成的第一个测试是神经网络应该迅速学习,一旦选择一次,输出就必须是输入。这部分起作用。

下面是每个人选择的图表。

[索引0]-您看不到有人选择它,并且它是一个估计预测。好。

[索引1]-已选择一个人,因此您看到一个1.0。好

[索引2]-好

[索引8]-有人选择了,但网络没有注意到该人。

Results

我尝试过:

  • 增加1-5层之间的致密层数。
  • 添加了之间的删除/删除了所有之间的删除。
  • 增加馈入数组的数据量。
  • 增加图层的输入大小,同时添加介于中间的一半的图层
  • 让时代上升到接近100,似乎是关于过度拟合的地方。

似乎没有人能使所有10个人正确。如果添加第三层,网络将变得更糟,两个人将无法接听。我得到的最好的(上述结果)是1个人的失踪,那就是只有两层(输入层,输出层)。

谢谢

0 个答案:

没有答案