我使用此代码与keras进行特征识别,现在我想进行分类,我不知道如何将softmax图层添加到我的自动编码器中,请帮帮我
答案 0 :(得分:0)
自动编码器不适用于分类。
它们只是以编码格式压缩数据,因此您可以稍后将这些数据用于其他事情(其中一项可能是分类,但为此创建自动编码器实际上毫无意义,除非您对数据的使用多于只是分类)
要从输入数据创建分类器,只需创建一个以所需类数结束的模型。
对于“正常”和“攻击”(只有两个类),您可以在一个班级中结束模型并制作0 be normal
和1 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)
的数组,具体取决于型号。