我训练了一个堆叠的自动编码器,它只包含编码器部分,并在末尾附加了一个分类器。模型如下:
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。
在和编码器中使用分类器层预测类的方法如下:
predicted_classes = autoencoder.predict(X_test)
predicted_classes = np.argmax(np.round(predicted_classes),axis=1)