激活函数的选择
上一节中,我们介绍了激活函数的相关知识,了解了常见的激活函数有哪些。那么当我们进行神经网络训练的时候应该如何选择激活函数呢?当输入数据特征相差比较明显时,用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进行卷积。
【关键词:青岛python培训机构,学python多少钱,python培训哪家好,中享思途】