keras使用入门及3D卷积神经网络资源
来源:互联网 发布:大数据 徐子沛 微盘 编辑:程序博客网 时间:2024/04/30 01:45
keras使用入门及3D卷积神经网络资源
keras模型
- Sequential模型
- 泛型模型
Sequential是多个网络层的线性堆叠。
以通过向Sequential模型传递一个layer的list来构造该模型
Sequential模型方法
- compile
- fit
- evaluate
- predict
简单的keras代码演示:
from keras.layers import Dense,Activationfrom keras.models import Sequentialmodel = Sequential([Dense(10,input_dim=784),Activation('relu'),Dense(10),Activation('relu'),Dense(1),])model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['accuracy'])
compile
目标函数objectives(目标函数,或称损失函数,是编译一个模型必须的两个参数之一)
model.compile(loss='mean_squared_error', optimizer='sgd')
以下是一些预定义的loss function
优化器optimizers (优化器是编译Keras模型必要的两个参数之一)
可以在调用model.compile()之前初始化一个优化器对象,然后传入该函数(如上所示),也可以在调用model.compile()时传递一个预定义优化器名。在后者情形下,优化器的参数将使用默认值。
optimizers
- SGD
- RMSprop
- Adadelta
观察一下个optimizer的效果(像小球在等高线上滚落至最低点)
Merge
多个Sequential可经由一个Merge层合并到一个输出。Merge层的输出是一个可以被添加到新 Sequential的层对象。下面这个例子将两个Sequential合并到一起
泛型模型
Keras的泛型模型为Model,即广义的拥有输入和输出的模型,我们使用Model来初始化一个泛型模型。 所有输入是张量,输出是张量的计算图就是keras模型,用于构建自建的复杂网络层序关系。
常用层
- Dense
- Activation
- Dropout
- Flatten
Dense(全连接层)
Activation 激活层对一个层的输出施加激活函数
keras.layers.core.Activation(activation) ;activation:将要使用的激活函数,为预定义激活函数名或一个Tensorflow/Theano的函数。
、
y=max(0,x) relu是目前比较流行的激活函数
Dropout
为输入数据施加Dropout。Dropout将在训练过程中每次更新参数时随机断开一定百分比(p)的输入神经元连接,Dropout层用于防止过拟合。
keras.layers.core.Dropout(p) ;p:0~1的浮点数,控制需要断开的链接的比例 。
Flatten
Flatten层用来将输入“压平”,即把多维的输入一维化,常用在从卷积层到全连接层的过渡。Flatten不影响batch的大小。
keras.layers.core.Flatten()
看下图中的「展开」
卷积层
- Convolution2D层
- Convolution3D层
Convolution2D层
二维卷积层对二维输入进行滑动窗卷积,当使用该层作为第一层时,应提供input_shape参数。例如input_shape = (3,128,128)代表128*128的彩色RGB图像。
Convolution3D层
三维卷积对三维的输入进行滑动窗卷积,当使用该层作为第一层时,应提供input_shape参数。例如input_shape = (3,10,128,128)代表对10帧128*128的彩色RGB图像进行卷积 。
池化层
- MaxPooling2D层
- MaxPooling3D层
- AveragePooling2D层
- AveragePooling3D层
递归层Recurrent
使用它的子类LSTM或SimpleRNN
3D卷积神经网络实现代码git资源
https://github.com/Ectsang/3D-CNN-Keras/blob/master/3d-cnn-action-recog-keras.py
例子数据源
http://www.nada.kth.se/cvap/actions/
实战(实验一下论文里的部分代码)
上图是一个多视图的3D卷积神经网络,我们只用keras简单搭建一个网络骨架
model = Sequential()# 160*100*22model.add(Convolution3D(10,kernel_dim1=9, # depthkernel_dim2=9, # rowskernel_dim3=9, # colsinput_shape=(3,160,100,22),activation='relu'))# now 152*92*14model.add(MaxPooling2D(pool_size=(2,2)))# now 76*46*14model.add(Convolution3D(30,kernel_dim1=7, # depthkernel_dim2=9, # rowskernel_dim3=9, # colsactivation='relu'))# now 68*38*8model.add(MaxPooling2D(pool_size=(2,2)))# now 34*19*8model.add(Convolution3D(50,kernel_dim1=5, # depthkernel_dim2=9, # rowskernel_dim3=8, # colsactivation='relu'))# now 26*12*4model.add(MaxPooling2D(pool_size=(2,2)))# now 13*6*4model.add(Convolution3D(150,kernel_dim1=3, # depthkernel_dim2=4, # rowskernel_dim3=3, # colsactivation='relu'))# now 10*4*2model.add(MaxPooling2D(pool_size=(2,2)))# now 5*2*2model.add(Dropout(0.25))model.add(Flatten())model.add(Dense(1500,activation='relu'))model.add(Dense(750,activation='relu'))model.add(Dense(num,activation='softmax')) #classification# Compilemodel.compile(loss='categorical_crossentropy', optimizer='RMSprop', metrics=['accuracy'])
keras框架可以帮助我们快速实现深度学习算法,将主要精力投入到算法的研究和调参上。
一些参考
https://keras.io/ keras官方文档
http://keras-cn.readthedocs.io/en/latest/ keras中文文档
http://cs231n.github.io/neural-networks-3/ 神经网络
https://github.com/Ectsang/3D-CNN-Keras/blob/master/3d-cnn-action-recog-keras.py 3d卷积神经网络代码
http://www.nada.kth.se/cvap/actions/ 3d卷积神经网络所用视频
http://blog.csdn.net/heyongluoyao8/article/details/52478715 优化器比较博客
http://blog.csdn.net/u012162613/article/details/44239919 代价函数比较博客
1 0
- keras使用入门及3D卷积神经网络资源
- Keras实现卷积神经网络
- keras中Convolution1D的使用(CNN情感分析yoom例子四) && Keras 1D,2D,3D卷积
- keras入门 利用卷积神经网络进行手写数字识别
- 双流神经网络及3D卷积系列论文阅读…
- 双流神经网络及3D卷积系列论文阅读笔记
- Keras 1D,2D,3D卷积
- 卷积神经网络CNN——使用keras识别猫咪
- Keras:2.3 keras实现卷积神经网络
- 3D 卷积神经网络 视频动作识别
- 卷积神经网络 资源
- keras/构建卷积神经网络识别mnist
- keras/构建卷积神经网络人脸识别
- keras构建卷积神经网络识别cifar10
- Keras CNN卷积神经网络(三)
- Keras上实现卷积神经网络CNN
- 卷积神经网络入门学
- CNN卷积神经网络入门
- win7 x64下安装python-opencv 及 “not a supported wheel”解决
- 计算机视觉:4个坐标系的关系
- B
- 得到当前的工作目录
- Selenium IDE录制登录操作分享
- keras使用入门及3D卷积神经网络资源
- JVM Java内存分配
- CGLib动态代理报错org.objectweb.asm.Type
- 处理strtotime()获取上个月、下个月出现的bug!!!
- 一站式学习Wireshark(二):应用Wireshark观察基本网络协议
- github:上传项目与删除项目
- web处理跨域问题
- spring boot自动建表
- enum