Overview
因为想尝试一些深度学习模型,就用Keras开始建模(为什么使用Keras?)。而且由于之前使用的极其模型都是基于R语言的,所以我们依然尝试使用R语言版本的Keras来训练深度学习模型。
Keras的R语言接口
Keras本身就是一个基于Tensorflow、Theano以及CNTK编写的纯Python框架,因为方便易用,所以使用广泛,为了让R语言开发者也能在R中使用Keras,Taylor Arnold写了kerasR包,而RStudio公司开发了keras包,关于这两个包的区别,参见keras: Deep Learning in R。
这里我使用kerasR包为例,在Ubuntu 16.04的R中安装Keras,并提供一些链接进一步学习使用kerasR和Keras。
安装过程
安装pip
pip是一个很方面易用的Python包管理工具,使用pip``可以很方便地安装Tensorflow和Keras`。
使用下面的命令安装:
sudo apt-get install python-pip
默认你已经安装了Python,如果没装Python,使用下面的命令一起装了:
sudo apt-get install python-pip python-dev build-essential
安装之后查看pip的版本信息:
pip -V
想要升级pip:
sudo pip install --upgrade pip
注意:装了最新版本的pip(或者是升级到最新版本的pip),可能会报错,参考Python包管理软件pip更新后报错。
安装Tensorflow
因为Keras本身是Tensorflow运行的机器学习框架,所以安装Keras之前先安装Tensorflow:
sudo pip install tensorflow
这里我是用了系统权限sudo,如果没有系统权限,也可以不用。
如果想安装指定版本的Tensorflow,可以用下面的命令安装:
sudo pip install tensorflow==1.2.1
如果想安装GPU版本的Tensorflow,可以用下面的命令安装:
sudo pip install tensorflow-gpu
在安装Tensorflow的过程中可能会报类似于下面的错误:
Cannot uninstall 'enum34'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
这是因为安装Tensorflow需要安装enum34,在安装enum34时需要删除旧的enum34。而在删除旧的enum34时,版本依赖多,不能系统清晰的删除。所以需要手动安装enum34并忽略已经安装的版本:
sudo pip install nibabel --ignore-installed nibabel
然后重新安装Tensorflow就可以了。
安装Keras
sudo pip install keras
安装成功后,打开python命令行,导入一下Tensorflow:
>>> import keras as kr
Using TensorFlow backend.
说明Keras已经装好。
安装kerasR
先打开R语言命令行(最后使用sudo,这样可以将R包安装到系统目录):
sudo R
安装kerasR
install.packages("kerasR")
安装成功后,导入kerasR,并检查状态:
library("kerasR")
keras_init()
如果不报错,就说明安装成功。
如果报了类似于下面的错误:
>> keras not available
>> See reticulate::use_python() to set python path,
>> then use kerasR::keras_init() to retry
就说明要么是Keras和Tensorflow没装好,要么是R找不到Python的路径。一般来说Python装在系统路径中,不会找不到。以防万一,可以查看下自己的Python路径,手动使用reticulate::use_python()函数加进去。比如在Ubuntu下面,一般是在/usr/bin/python,那就可以用下面的命令安装:
reticulate::use_python("/usr/bin/python")
使用kerasR
安装好之后,可以参考下面的链接来在真实数据集上运行几个例子:
因为kerasR只是Keras的一个R语言接口,所以使用kerasR之前还是要对Keras有一些了解。可以查看下面的链接快速了解Keras:
如果想快速上手一些Keras模型,可以查看下面的链接: