【问题标题】:Stacked Autoencoder for Classification用于分类的堆叠自动编码器
【发布时间】:2021-12-19 03:56:49
【问题描述】:

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

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。

【问题讨论】:

  • 您需要澄清“似乎不起作用”,会发生什么?
  • @Dr.Snoopy 如果您在 ravel() 函数下方看到我的 asnwer 用于做同样的事情,这就是为什么我不必担心找到阈值并将预测概率转换为它的原因想要的课程。我认为该 ravel() 函数不存在。我可能错了。
  • 你说的对我来说没有意义,你还是需要正确描述问题,否则这个问题对其他人没有用。 ravel 确实存在于 numpy 中。

标签: tensorflow keras autoencoder


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 2017-09-18
    • 2018-05-11
    • 2018-08-24
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    相关资源
    最近更新 更多