带有 MNIST 样本数据的简单 keras 自动编码器不起作用

Simple keras autoencoder with MNIST sample data not working

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

objective是将每个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
)

你想在这里使用binary_crossentropy作为损失函数。 categorical_crossentropy适用于多classclass化问题(只有一个输出为1),binary_crossentropy适用于多标签class化。