学习python代码

时间:2017-11-12 10:28:14

标签: keras classification autoencoder softmax

我使用此代码与keras进行特征识别,现在我想进行分类,我不知道如何将softmax图层添加到我的自动编码器中,请帮帮我

1 个答案:

答案 0 :(得分:0)

自动编码器不适用于分类。

它们只是以编码格式压缩数据,因此您可以稍后将这些数据用于其他事情(其中一项可能是分类,但为此创建自动编码器实际上毫无意义,除非您对数据的使用多于只是分类)

要从输入数据创建分类器,只需创建一个以所需类数结束的模型。

对于“正常”和“攻击”(只有两个类),您可以在一个班级中结束模型并制作0 be normal1 be attack

input_tensor = Input(shape=(input_size,))
output_tensor = Dense(40, activation="relu", activity_regularizer=regularizers.l1(10e-5))(input_tensor)
output_tensor= Dense(30, activation="relu")(output_tensor)
output_tensor = Dense(20, activation="relu")(output_tensor)
output_tensor= Dense(10, activation="relu")(output_tensor)
output_tensor= Dense(5, activation="relu")(output_tensor)
output_tensor= Dense(3, activation="relu")(output_tensor)
output_tensor= Dense(1,activation='sigmoid')(output_tensor)

model = Model(input_tensor,output_tensor)

我使用了1个输出(密集(1)),我想要0(正常)或1(攻击)。 'sigmoid'激活对于将结果保持在此范围内或0和1非常重要。

现在,您只需确保y_true数据是一个形状为(records,)(records,1)的数组,具体取决于型号。