卷积神经网路、Mxnet、Alxnet及Lenet

初学深度学习,选择了MXNET作为入手框架,一方面是导师的要求,另一方面也是对国人在深度学习领域的支持;本文是我参考其他人博客后做的总结性的文章。

一、卷积神经网络重要概念

作为深度学习的基础,卷积神经网络有以下几个部分组成

1、 卷积层(Convolutional Layer):

定义卷积核对图片进行卷积运算,得到图片的特征

2、 降采样层(pooling layer):

用一个值来代替一块区域,可以是该区域的平均值或最值,目的是减少数据量。

3、 激活函数层(activation layer)

将卷积后的结果压缩到某一个固定的范围,可以保持一层一层下去的数据是可控的
通过函数将特征保留并映射出来,加入非线性因素
常见激活函数有:
sigmoid:控制在[0, 1]
tanh:控制在[-1, 1]
ReLU:控制在[0, 正无穷]

4、 标准化层 (Normalization layer)

5、 全连接层(full connected layer)

6、 扔掉层(dropout layer)

在训练过程中以一定的概率将隐含层节点的输出清0,而用bp更新权值时,不再更新与该节点相连的权值。

这个层常常出现在全连接层的地方,因为全连接层中的结点与结点连接太多了,消耗了CNN中绝大多数的内存资源,而这中间有一大部分是没有必要的。

二、MXNET及神经网络参数设置

下面介绍一些常用的层,更多的层可以python命令下执行

import mxnet as mx
help(mx.symbol)

Activation:激活函数

data: 输入数据,symbol型变量
act_type: {'relu', 'sigmoid', 'tanh'}, 可选的3种激活函数

Convolution:卷积层

data:输入数据,symbol型变量
weight:权重矩阵,symbol型变量
bias:偏置,symbol型变量
kernal:卷积核的尺寸(y,x),二维tuple型变量
stride:卷积步长(y,x),二维tuple型变量,默认为(1,1)
pad:卷积的填补量(y,x),二维tuple型变量,默认为(0,0)
num_filter :卷积滤波器(通道)个数,int型变量
no_bias :是否取消偏置,布尔型变量,默认为False
num_group:groups划分的个数,int型变量,默认为1.该选项不被CUDNN所支持, you can use SliceChannel to num_group,apply convolution and concat instead to achieve the same need.
workspace:卷积的Tmp工作空间的大小MB。long型变量,默认为512

Deconvolution:反卷积层

参数同卷积层

Dropout:

data:输入数据,symbol型变量
p : 训练时对输入数据进行dropped out的比例,float型变量,默认为0.5

Flatten:将N维数据变为1维

data:输入数据,symbol型变量
name : string, optional. Name of the resulting symbol.

FullyConnected:全连接层

data:输入数据,symbol型变量
weight:权重矩阵,symbol型变量
bias:偏置,symbol型变量
no_bias :是否取消偏置,布尔型变量,默认为False
num_hidden:输出隐藏节点的个数,int型变量

LRN:

data:输入数据,symbol型变量
alpha : float, optional, default=0.0001.value of the alpha variance scaling parameter in the normalization formula
beta : float, optional, default=0.75.value of the beta power parameter in the normalization formula
knorm : float, optional, default=2.value of the k parameter in normalization formula
nsize : int (non-negative), required.normalization window width in elements.

Pooling:池化层

data:输入数据,symbol型变量
kernal:pooling核的尺寸(y,x),二维tuple型变量
stride:pooling步长(y,x),二维tuple型变量,默认为(1,1)
pad:pooling的填补量(y,x),二维tuple型变量,默认为(0,0)
pool_type : pooling的类型,可选的3种{'avg', 'max', 'sum'}

softmaxOutput

data:输入数据,symbol型变量
grad_scale : 为梯度乘以一个比例系数,float型变量,默认为1
multi_output : 布尔型变量,默认为False
# If set to true, for a (n,k,x_1,..,x_n) dimensionalinput tensor, softmax will generate n*x_1*...*x_n output, eachhas k classes

Variable:定义一个symbol型变量

name : 变量的名字,str型变量
attr : dict of string -> string.Additional attributes to set on the variable.

(未完待续)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值