python卷积_Python深度学习之卷积函数CNN

激活函数的选择

上一节中,我们介绍了激活函数的相关知识,了解了常见的激活函数有哪些。那么当我们进行神经网络训练的时候应该如何选择激活函数呢?当输入数据特征相差比较明显时,用tanh的效果会很好,且在循环过程中会不断扩大特征效果并显示出来。当特征相差不明显时,sigmoid的效果比较好。同时,用sigmoid和tanh作为激活函数时,需要对输入进行规范化,否则激活后的值全部进入平坦区,隐层的输出会全部趋同,丧失原有的特征表达。而relu会好很多,有时可以不需要输入规范化来避免上述情况。

因此,现在大部分的卷积神经网络都采用relu作为激活函数,估计大概有80%~90%的神经网络会采用relu,10~20%的神经网络会采用tanh,尤其用在自然语言处理方面。

卷积函数

卷积函数是构架神经网络的重要支架,是在一批图像上扫描的二维过滤器。我们在用它做实验的时候会更加具体地讲解卷积的过程。卷积函数的定义大家可以再自行查看。我们来对其内部的函数进行一些说明。

下面我们就分别加以说明。

(1)tf.nn.convolution(input, filter, padding, strides=None,dilation_rate=None,

name=None,data_format=None)这个函数计算N维卷积的和。

(2)tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None,

data_format=None,name=None)这个函数的作用是对一个四维的输入数据input和四维的卷积核filter进行操作,然后对输入数据进行一个二维的卷积操作,最后得到卷积之后的结果。

使用示例如下所示:

打印出tf.shape(y)的结果是[10 9 9 2]。

(3)tf.nn.depthwise_conv2d(input, filter, strides, padding, rate=None, name=None, data_formate=None),这个函数输入张量的数据维度是[batch, in_height, in_width, in_channels], 卷积核的维度是[filter_height, filter_width, in_channels, channel_multiplier],在通道in_channels上面的卷积深度是1,depthwise_conv2d函数将不同的卷积核独立地应用在in_channels的每个通道上,然后对所有结果进行汇总。最后输出通道的综述是in_channels*channels_multiplier。

(4)tf.nn.separable_conv2d(input, depthwise_filter, pointwise_filter,strides, padding, rate=None,name=None,data_format=None)是利用几个分散的卷积核去做卷积。在这个API中将应用一个二维的卷积核,在每个通道上,以深度channel_multiplier进行卷积。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值