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
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
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- TensorFlow 的简单例子