学习 python 代码

Learning python code

我将此代码与 keras 一起用于特征学习,现在我想做分类,我不知道如何将 softmax 层添加到我的自动编码器,请帮助我

自动编码器不适用于class化。

他们只是将数据压缩为一种编码格式,这样您以后就可以将这些数据用于其他事情(其他事情之一可能是 class化,但是为此创建一个自动编码器真的毫无意义,除非您数据的用途不仅仅是 classification)

要根据您的输入数据创建一个 classificator,只需制作一个以您想要的 classes 数量结尾的模型。

对于"normal"和"attack"(只有两个classes),你可以在一个class中结束模型并使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 个输出 (Dense(1)),我希望它是 0(正常)或 1(攻击)。 'sigmoid' 激活对于将结果保持在此范围内或 0 和 1 内很重要。

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