首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >:MNIST数据集的培训和测试

:MNIST数据集的培训和测试
EN

Stack Overflow用户
提问于 2015-02-20 07:18:08
回答 2查看 3.7K关注 0票数 3

我正在尝试使用深层包的dbn.dnn.train函数来训练MNIST数据集。这是一个分类任务。我使用以下命令

代码语言:javascript
复制
dbn.deepnet <- dbn.dnn.train(train.image.data,train.image.labels,hidden=c(5,5))

我所面对的问题是:

1)标签应是因子类型向量。但是,当我输入标签作为因子时,函数会出现一个错误,即"y应该是一个矩阵或向量“。所以,我使用标签作为数字。如何继续进行分类任务

2) dbn.dnn.train的预测功能是什么?我使用的是nn.predict,但是文档提到输入应该是由函数nn.train训练的神经网络(没有提到dbn.dnn.train)。所有记录的输出为0.9986。

代码语言:javascript
复制
nn.predict(dbn.deepnet,train.image.data)
EN

回答 2

Stack Overflow用户

发布于 2015-05-24 17:56:59

不知道您是否还在研究它,或者您是否找到了解决方案,但是: 1/尝试如下: train.image.labels <- data.matrix(train.image.labels)

2/我使用nn.predict,即使神经网络是由dbn.dnn.train训练的。

票数 2
EN

Stack Overflow用户

发布于 2016-06-16 15:25:17

如您所知,神经网络的输入值最好在0到1之间。在“深度网”包中,与nn.train函数不同的是,对于dbn.dnn.train,您需要自己对输入进行规范化。这是加载、训练和测试的完整代码。

代码语言:javascript
复制
#loading MNIST
setwd("path/to/MNIST/")
mnist <- load.mnist(".")
# the function to normalize the input values
normalize <- function(x) {
  return (x/255)
}
# standardization
train_x_n <-  apply(mnist$train$x, c(1,2),FUN = normalize)
test_x_n <- apply(mnist$test$x, c(1,2),FUN = normalize)
#training and prediction
dnn <- dbn.dnn.train(train_x_n, mnist$train$yy, hidden = c(100, 70, 80), numepochs = 3, cd = 3)
err.dnn <- nn.test(dnn, test_x_n, mnist$test$yy)
dnn_predict <- nn.predict(dnn, test_x_n)
# test the outputs
print(err.dnn)
print(dnn_predict[1,])
print(mnist$test$y[1])

输出:

代码语言:javascript
复制
> err.dnn
[1] 0.0829
> dnn_predict[1,]
[1] 7.549055e-04 1.111647e-03 1.946491e-03 7.417489e-03 3.221340e-04 7.306264e-04 4.088365e-05 9.944441e-01 8.953903e-05
[10] 9.085863e-03
> mnist$test$y[1]
[1] 7
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28623533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档