您的位置:首页 > 编程语言 > Python开发

Keras学习日记1

2016-06-15 23:03 253 查看
1. Keras的安装

Keras是一个基于Theano后端(默认)或TensorFlow后端的极简和高度模块化的神经网络类库。目前,深度学习异常

火爆,如果你想快速实现深度学习原型设计,那么请使用Keras吧。后端指的是Keras依赖于完成底层的张量运算的软

件包,默认使用Theano作为后端来进行张量操作,如果需要也可以切换到TensorFlow。依赖于Keras,我们就可以快

速搭建一个问答系统、图像分类模型,或神经图灵机、word2vec词嵌入器、基于记忆网络的问答系统、基于LSTM的

文本生成等。安装Keras之前,需要安装CUDA,Python,PyCUDA,Theano,TensorFlow等,详细参考[1],上面说

的特别详细,自己就是按照这个步骤一步一步安装的所有软件。

2. 基本概念

(1)'th'与'tf':'th'模式也就是Theano模式,它会把100张RGB三通道的16*32(高为16,宽为32)彩色图表示为

(100, 3, 16, 32)这种形式,Caffe也是这样形式。但是'tf'模式也就是TensorFlow模式,它会表示成(100, 26, 32, 

3)这种形式。需要说明的是,Keras自带的数据库模块下载的数据库也是'th'模式。

(2)batch:批量梯度下降法(Batch Gradient Descent)是遍历全部数据集算一次损失函数,然后算函数对各个参

数的梯度。随机梯度下降法(Stochastic Gradient Descent)是每看一个数据就算一下损失函数,然后求梯度更新参

数。小批量梯度下降法(Mini-Batch Gradient Descent)是把数据分为若干个批,按批来更新参数。需要说明的是

Keras模块中的batch_size指的就是小批量梯度下降法。

(3)Sequential模型:Sequential是Keras的核心数据结构,它是一种组织网络层的方式,是一系列网络层按顺序构

成的栈。

说明:Keras默认的数据组织形式在~/.keras/keras.json中规定,可查看该文件的image_dim_ordering一项查看,也可

在代码中通过K.image_dim_ordering()函数返回,请在网络的训练和测试中保持维度顺序一致。

3. ImportError: /usr/local/lib/python2.7/dist-packages/numpy/random/mtrand.so: undefined symbol: PyFPE_jbuf

解析:自己安装的numpy和Anaconda自带的numpy冲突,pip uninstall numpy卸载numpy即可。[3]

4. ERROR (theano.sandbox.cuda): Failed to compile cuda_ndarray.cu: libcublas.so.7.5 

解析:export LD_LIBRARY_PATH=/usr/local/cuda/lib64,在~/.bashrc中设置CUDA类库的路径即可。

5. Python函数生成器

解析:函数定义中包含yield关键字那么函数就变成了生成器。在生成器执行过程中,遇到yield就中断,下次又继续从

中断点后执行。函数形式定义的生成器一般不会用next()来获取下一个返回值,而是直接用for循环来迭代。在生成器

中,不允许return后面带任何参数。

说明:生成器函数(generator)和函数的执行流程不一样。函数是顺序执行,遇到return语句或者最后一行函数语句

就返回。而生成器函数(generator),在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的

yield语句处继续执行。 

6.        

参考文献:

[1] Setting up a Deep Learning Machine from Scratch:https://github.com/saiprashanths/dl-setup#tensorflow

[2] The Keras Blog:http://blog.keras.io/index.html

[3] numpy undefined symbol: PyFPE_jbuf:http://stackoverflow.com/questions/36190757/numpy-undefined-symbol-

pyfpe-jbuf

[4] Failed to compile cuda_ndarray.cu: libcublas.so.7.5:http://stackoverflow.com/questions/35619962/failed-to-compile-cuda-ndarray-cu-libcublas-so-7-5-cannot-open-shared-object-f
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息