我有一个基于项目选择的模型。 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]-有人选择了,但网络没有注意到该人。
我尝试过:
似乎没有人能使所有10个人正确。如果添加第三层,网络将变得更糟,两个人将无法接听。我得到的最好的(上述结果)是1个人的失踪,那就是只有两层(输入层,输出层)。
谢谢