Keras作为深度学习一个框架已越来越受到大家的青睐,后台可以实现theano和tensorflow的切换,编程简单,效果显著,现在我主要用Keras做一些图片识别的工作,把自己的一些心得和踩过的坑分享给大家。
本分介绍的是在ubuntu14环境下安装Keras,本着最简单有效的方式:
1.首先安装Python数据分析集成包Anaconda,里面包含numpy,scipy等数据分析常用的包。
官网下载地址为:https://www.continuum.io/downloads/
我下载的是Anaconda2-4.2.0-Linux-x86_64.sh包,运行安装即可,会替换本机的python
2.我这里用的是Keras-1.1.0,没有使用pip install keras进行安装,而是下载keras包进行安装
当时的下载地址好像为https://pypi.python.org/pypi/Keras。
进入Keras目录运行 python setup.py install进行安装
3.一般进行图片处理都会用到opencv,python安装opencv也是比较简单的,直接运行
pip install opencv-python来安装即可,网上说的 sudo apt-get install python-opencv个人觉得不好使。
4.后台切换theano或者tensorflow:
运行keras项目之后会出现.keras目录编辑~/.keras/keras.json来选择后台运行的方式
运行keras项目之后会出现.keras目录编辑~/.keras/keras.json来选择后台运行的方式
默认为tensorflow
{
"image_dim_ordering": "tf",
"epsilon": 1e-07,
"floatx": "float32",
"backend": "tensorflow"
}
可改为:
{
"image_dim_ordering": "th",
"epsilon": 1e-07,
"floatx": "float32",
"backend": "theano"
}
5.如果不适用GPU进行运算,上面步骤就可以进行测试使用keras了,如果需要使用GPU,首先是用Nvidia的显卡。
gtx1060,gtx1080都比较不错,再就是安装cuda驱动。
进入cuda驱动下载网站: https://developer.nvidia.com/cuda-downloads
下载相对应系统的驱动,按照提供的安装方式进行安装即可。网站上安装方式说的很详细也很人性化,建议不要使用在线安装。
6.配置theano gpu运算,后台一直用的是theano,需要配置一下才可使用:
我的配置方式为:
新建test_gpu1.py:
运行 python test_gpu.py 即可测试
通过以上配置已经可以正常使用keras进行神经网络训练,但其间还有一些警告性报错,以后慢慢解决。
转载注明出处~
欢迎关注本人微信公众号:
gtx1060,gtx1080都比较不错,再就是安装cuda驱动。
进入cuda驱动下载网站: https://developer.nvidia.com/cuda-downloads
下载相对应系统的驱动,按照提供的安装方式进行安装即可。网站上安装方式说的很详细也很人性化,建议不要使用在线安装。
6.配置theano gpu运算,后台一直用的是theano,需要配置一下才可使用:
我的配置方式为:
编辑~/.theanorc
[global]
device=gpu
floatX=float32
[cuda]
root=/usr/local/cuda-8.0 #cuda路径
7.测试keras和是否使用gpu运算,代码来源于网络:
新建test_gpu1.py:
from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time
vlen = 10 * 30 * 768 # 10 x #cores x # threads per core
iters = 1000
#THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32 python test_gpu1.py
rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], T.exp(x))
print f.maker.fgraph.toposort()
t0 = time.time()
for i in xrange(iters):
r = f()
t1 = time.time()
print 'Looping %d times took' % iters, t1 - t0, 'seconds'
print 'Result is', r
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):
print 'Used the cpu'
else:
print 'Used the gpu'
运行 python test_gpu.py 即可测试
通过以上配置已经可以正常使用keras进行神经网络训练,但其间还有一些警告性报错,以后慢慢解决。
转载注明出处~
欢迎关注本人微信公众号: