R平台玩深度学习教程
本文介绍R平台玩深度学习的内容。
R平台深度学习环境构建
第一步:安装Anaconda软件并创建环境r-tensorflow
Anaconda软件安装,请阅读文章《Anaconda软件安装和简易使用教程》
创建环境r-tensorflow的命令
conda create --name r-tensorflow python=3.6
【温馨提示】为了能够在R平台上面使用深度学习框架tensorflow,请一定创建环境r-tensorflow。
第二步:在r-tensorflow环境下安装tensorflow和keras
r-tensorflow环境下安装tensorflow和keras,请阅读下面文章。
1 《Anaconda软件安装TensorFlow教程》
2 《Anaconda软件安装Keras教程》
第三步:安装R和RStudio软件
R软件官网:http://r-project.org
RStudio软件官网:http://rstudio.com
第四步:打开RStudio软件安装keras包
R代码
install.packages("keras")
前面4步是搭建R平台的深度学习工作环境,后面介绍R平台深度学习的应用。
MNIST图像识别问题
对MNIST数据集做手写数字识别,MNIST包含一系列28×28的灰色手写数字图像,如下所示:
第一步:数据准备
数据准备包括数据获取/数据分割/数据处理(重构和归一化和one-hot编码)
R代码
mnist <- dataset_mnist()
x.train <- mnist$train$x
y.train <- mnist$train$y
x.test <- mnist$test$x
y.test <- mnist$test$y
dim(x.train) <- c(nrow(x.train), 28*28)
dim(x.test) <- c(nrow(x.test), 28*28)
x.train <- x.train / 255
x.test <- x.test / 255
y.train <- to_categorical(y.train, 10)
y.test <- to_categorical(y.test, 10)
str(x.train)
str(y.train)
第二步:模型设计
模型设计包括神经网络结构设计/损失函数+优化方法+度量准则设置
R代码
model <- keras_model_sequential()
model %>%
layer_dense(units = 256, activation = 'relu', input_shape = c(784)) %>%
layer_dropout(rate = 0.4) %>%
layer_dense(units = 128, activation = 'relu') %>%
layer_dropout(rate = 0.3) %>%
layer_dense(units = 10, activation = 'softmax')
summary(model)
model %>% compile(
loss = 'categorical_crossentropy',
optimizer = optimizer_rmsprop(),
metrics = c('accuracy')
)
第三步:模型拟合和评价
R代码
history <- model %>% fit(
x.train, y.train,
epochs = 30,
batch_size = 128,
validation_split = 0.2
)
plot(history)
model %>% evaluate(x.test, y.test)
结果:
第四步:模型应用
R代码
model %>% predict_classes(x.test)
手写数字识别部分结果
您在阅读中,有什么建议或者想法,请评论。
文章推荐:
2 R语言做数据探索
3 电商评论情感分析
公众号推荐:
数据科学与人工智能,分享数据科学和人工智能的内容。
阅读原文,更多精彩!
分享是收获,传播是价值!
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!