Keras R语言接口正式发布,同时公开20个完整示例

简介: 在过去的几年间,人们对深度学习的兴趣增长迅速,同时期出现了几个深度学习的框架。在所有的框架中,Keras因为在生产力、灵活性以及对用户友好性方面的优势脱颖而出。同时期,tensorflow作为下一代机器学习平台,非常灵活,很适合产品部署。

关于keras的介绍

Keras是一个高层神经网络API,为支持快速实验而生,目前主要功能如下:

  • 支持相同的代码无缝跑在CPU或GPU上

  • 对用户友好,易于快速prototype深度学习模型

  • 支持计算机视觉中的卷积网络、序列处理中的循环网络,也支持两种网络的任意组合

  • 支持任意网络架构:多段输入或多段输出模型、层共享、模型共享等。这意味着Keras 本质上适合用于构建任意深度学习模型(从记忆网络到神经图灵机)

  • 兼容多种运行后端,例如TensorFlow、CNTK和 Theano

如果你已经很熟悉Keras了,并且想要立刻体验最新发布的R语言接口,请点击如下网址:https://keras.rstudio.com,这里有超过20个完整示例,相信有你需要的东西。

接下来是更多关于Keras的信息,以及发布Keras的R语言接口的意义。

Keras和深度学习

在过去的几年间,人们对深度学习的兴趣增长迅速,同时期出现了几个深度学习的框架。在所有的框架中,Keras因为在生产力、灵活性以及对用户友好性方面的优势脱颖而出。同时期,tensorflow作为下一代机器学习平台,非常灵活,很适合产品部署。

毫不惊讶地说,Keras和tensorflow正在逐渐超过其他深度学习框架。

Keras R语言接口正式发布,同时公开20个完整示例

现在,你不需要纠结该选tensorflow或是Keras了。Keras的默认后端支持通过tensorflow工作流,实现tensorflow和Keras的无缝集成。今年晚些时候,可以通过更深的集成,让Keras完全实现与tensorflow的无缝衔接。

Keras和tensorflow目前都是最顶尖的深度学习框架,有了新发布的Keras包,利用R接口现在可以同时接入两个框架。

使用说明

安装

首先,从CRAN的Keras R包中按照如下步骤安装:

install.packages("keras")

Keras R接口默认使用 TensorFlow后端引擎。使用如下install_keras()函数安装核心Keras库和 TensorFlow后端:

library(keras)

install_keras()()

这个函数默认基于CPU安装Keras和TensorFlow。如果你想要自定义安装,比如说想要利用英伟达GPU,可以查看install_keras()函数的详细文档。

MNIST样例

可以通过实现一个简单的例子来学习Keras的基本知识:识别来自MNIST数据集的手写数字。MNIST由手写数字的28x 28灰度图像组成,如下图所示:

Keras R语言接口正式发布,同时公开20个完整示例

数据集中包含每个图像的标签,来告诉我们这是哪个数字。例如,上面图像中的标签分别是5,0,4,1。

准备数据

MNIST数据集包含在Keras中,可以通过使用dataset_mnist() 函数得到。这个例子中我们先下载数据集,然后为测试和训练数据创造出变量。

library(keras)
mnist <- dataset_mnist()
x_train <- mnist$train$x
y_train <- mnist$train$y
x_test <- mnist$test$x
y_test <- mnist$test$y

x数据是灰度值的3-d数组(图像、宽度、高度)。为了准备训练数据,通过将宽度和高度转换为一维(28x28的图像被简化成长为784的向量),从而把三维数组转换为矩阵。然后,我们将值为0到255的整数之间的灰度值转换成0到1之间的浮点值。

# reshape

dim(x_train) <- c(nrow(x_train), 784)

dim(x_test) <- c(nrow(x_test), 784)

# rescale

x_train <- x_train / 255

x_test <- x_test / 255

y数据是一个整型向量,其值从0到9。为了准备训练数据,我们利用 Keras  to_categorical()函数,用one-hot编码方法将向量转化为二进制类矩阵(binary class matrices ):

y_train <- to_categorical(y_train, 10)
y_test <- to_categorical(y_test, 10)

定义模型

我们首先创建一个序贯模型(sequential model),然后使用pipe(%-%)运算符添加层。

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()函数打印出模型的细节:

Keras R语言接口正式发布,同时公开20个完整示例

接下来,用适当的损失函数、优化器和指标来编译模型:

model %>% compile(  

  loss = 'categorical_crossentropy',  

  optimizer = optimizer_rmsprop(),  

  metrics = c('accuracy')
)

训练和评估

使用fit() 函数来训练模型,epochs为30,batch_size为128:

history <- model %>% fit(
  x_train, y_train, 
  epochs = 30, batch_size = 128, 
  validation_split = 0.2

)

可以通过plot(history)绘制出每一步epoch下loss和acc的值:

Keras R语言接口正式发布,同时公开20个完整示例

通过测试数据评估模型表现:

model %>% evaluate(x_test, y_test)

$loss
[1] 0.1149

$acc
[1] 0.9807

通过新的数据生成预测值:

model %>% predict_classes(x_test)

Keras R语言接口正式发布,同时公开20个完整示例





本文作者:Non
本文转自雷锋网禁止二次转载,原文链接
目录
相关文章
|
7月前
|
存储
【视频】R语言中的分布滞后非线性模型(DLNM)与发病率,死亡率和空气污染示例
【视频】R语言中的分布滞后非线性模型(DLNM)与发病率,死亡率和空气污染示例
|
7月前
R语言中编写最小工作示例(MWRE)
R语言中编写最小工作示例(MWRE)
|
7月前
|
编译器 Python Windows
R语言RStan贝叶斯示例:重复试验模型和种群竞争模型Lotka Volterra
R语言RStan贝叶斯示例:重复试验模型和种群竞争模型Lotka Volterra
|
7月前
R语言RStan贝叶斯示例:重复试验模型和种群竞争模型Lotka Volterra2
R语言RStan贝叶斯示例:重复试验模型和种群竞争模型Lotka Volterra
|
数据处理
R语言-数据处理:dplyr包内 mutate-across 联用示例
mutate和across函数是dplyr中非常常用的函数,它们可以帮助我们快速、高效地对数据进行处理和分析。本文分享了联用这两个函数处理数据的基本用法示例,熟练掌握这些函数的用法,可以大大提高我们的数据处理效率。
513 0
|
机器学习/深度学习 移动开发 数据挖掘
R语言- data.table包加速大型数据集的加载和运算效率用法示例
本文根据个人使用经验和博客参考,总结分享了在R语言中使用data.table包来提升大型数据集处理效率的用法示例,以供参考
286 0
|
数据挖掘 数据格式
R语言- ComplexHeatmap 绘制复杂热图示例
ComplexHeatmap是R语言中用于绘制复杂热图的一个重要包。它提供了一种灵活、高效、易于定制的方法来绘制热图,并支持多种数据类型和数据格式,支持包括多种热图类型,包括基本热图、聚类热图、分组热图、矩阵热图等。用户可以根据自己的需求选择不同的热图类型,并进行灵活的定制。在生物信息学、医学、生态学等领域得到广泛应用。 本文将通过一个复杂热图的创建示例分享 ComplexHeatmap的语法规则。
812 0
|
数据可视化 数据挖掘 Python
跟着Nature学作图:R语言ggplot2散点图和柱形图完整示例(Extended Fig3)
跟着Nature学作图:R语言ggplot2散点图和柱形图完整示例(Extended Fig3)
|
数据可视化 数据挖掘 Python
跟着Nature学作图:R语言ggplot2分组折线图完整示例(Extended Fig2)
跟着Nature学作图:R语言ggplot2分组折线图完整示例(Extended Fig2)
|
数据可视化 数据挖掘 Python
跟着Nature Metabolism学作图:R语言ggplot2柱形图和下三角热图完整示例
跟着Nature Metabolism学作图:R语言ggplot2柱形图和下三角热图完整示例