Keras学习日记1
来源:互联网 发布:户外广告行业数据 编辑:程序博客网 时间:2024/06/05 08:09
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学习日记1
- Keras踩坑日记-1
- Keras学习笔记(1)
- 【Keras】Keras学习框架
- [Keras]学习笔记(1):optimizers
- keras学习笔记(1)-Keras的模块架构
- Keras-1 学习Keras,从Hello World开始
- Keras学习
- keras学习笔记(1)CNN网络
- keras学习笔记(1)CNN网络
- keras学习笔记(1)CNN网络
- keras学习笔记1 一些基本概念
- Keras学习(1)-识别手写体的例子
- JSP学习日记 - 1
- Hibernate学习日记(1)
- arm学习日记(1)
- 学习.net日记1
- javap 学习日记~1
- 使用HttpUTILS请求XML数据
- 用户态文件系统fuse学习
- 欢迎使用CSDN-markdown编辑器
- C#重写Equals()
- 一次Ajax报错:“存储空间不足,无法完成此操作”的解决经验
- Keras学习日记1
- zencart 安装和配置修改笔记
- Lombok学习
- C语言运算符和操作符
- 指针
- android Fragment 源码分析
- Linux下find命令详解
- 关于UIView位置信息的总结和CATransform3D初步认识
- C#获取程序运行时间