首页 > 解决方案 > 带有 MNIST 样本数据的简单 keras 自动编码器不起作用

问题描述

我正在尝试使用 MNIST 示例数据集实现一个简单keras autoencoder的方法。R我从博客中获得了我的示例,但它不起作用。我几乎得到了0 %准确度。

28 x 28目标是将每个图像(784 个条目)压缩成一个包含 32 个条目的向量:

这是我的代码:

library(keras)
mnist <- dataset_mnist()
x_train <- mnist$train$x

# reshape
x_train <- array_reshape(x_train, c(nrow(x_train), 784))
x_train <- x_train / 255

model <- keras_model_sequential() 
model %>% 
 layer_dense(units = 32, activation = 'relu', input_shape = c(784)) %>% 
 layer_dense(units=784, activation='sigmoid')

model %>% compile(
  loss = 'categorical_crossentropy',
  optimizer = 'adam',
  metrics = c('accuracy')
)

history <- model %>% fit(
  x_train, x_train, 
  epochs = 15, batch_size = 128, 
  validation_split = 0.2
)

标签: rkerascompressionmnistautoencoder

解决方案


您想在binary_crossentropy此处用作损失函数。categorical_crossentropy适用于多类分类问题(只有一个输出为1),binary_crossentropy适用于多标签分类。


推荐阅读