首页 > 解决方案 > 用于分类的堆叠自动编码器

问题描述

我已经训练了一个堆叠的自动编码器,它只包含编码器部分,并在最后附加了一个分类器。该模型如下所示:

input_ = layers.Input(shape=(78,))
encoder = layers.Dense(50,activation='relu')(input_)
encoder_one = layers.Dense(30,activation='relu')(encoder)
encoder_two = layers.Dense(15,activation='relu')(encoder_one)
classifier = layers.Dense(11,activation='softmax')(encoder_two)
autoencoder = Model(inputs=input_, outputs=classifier)

为了检查模型是否工作正常,我无法预测类,就像我可以为其他模型(如 CNN 或 RNN)做的那样。我该如何做到这一点?我很久以前在 tensorflow 1.6 中使用带有最后一层的堆叠自动编码器作为分类器。以前我经常做

y_pred = autoencoder.predict(X_test).ravel()

但是上面的代码似乎不再适用于 Tensorflow 2.3。

标签: tensorflowkerasautoencoder

解决方案


使用分类器层和编码器预测类别的方法如下:

predicted_classes = autoencoder.predict(X_test)
predicted_classes = np.argmax(np.round(predicted_classes),axis=1)

推荐阅读