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

时间:2018-07-25 12:15:45

标签: r keras compression mnist autoencoder

我正在尝试使用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
)

1 个答案:

答案 0 :(得分:2)

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