r - 带有 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
)
解决方案
您想在binary_crossentropy
此处用作损失函数。categorical_crossentropy
适用于多类分类问题(只有一个输出为1),binary_crossentropy
适用于多标签分类。
推荐阅读
- excel - VBA Excel将多封电子邮件剪切/粘贴到另一个工作表中
- python - 如何在 C++ 应用程序运行时在后台启动嵌入式 python xmlrpc 服务器?
- html - 仅带/不带 2 位小数的模式数字
- javascript - 如何使用 JavaScript 获取活动选项卡的文本值?
- python - Python,错误/错误,两次打印输出,定义/函数
- java - 如何在启动 MainActivity 之前启动布局 mydialog?
- jupyter-notebook - 无法在我的 Google 云端硬盘中打开 Colab Notebook
- c++ - 对显式实例化的模板函数的未定义引用
- android - 从相机拍摄并编码为 Base64 的图像质量很差
- java - 扩展 Kotlin 基类的 Java 类不能调用基类的内部方法