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
模型,可以查看下面的链接: