Tensorflow从入门到秃顶(4)

Tensorflow中构建神经网络所需要的神经元函数,包括各种激活函数,卷积函数,池化函数,损失函数,优化器等。

激活函数运行时激活神经网络中某一部分神经元,将激活信息向后传入下一层的神经网络。神经网络之所以能解决非线性问题(如语音,图像识别),本质上就是激活函数加入非线性因素,弥补了线性模型的表达力,把“激活的神经元的特征”通过函数保留并映射到下一层。

tf.nn.relu()

tf.nn.sigmoid()

tf.nn.tanh()

tf.nn.elu()

tf.nn.bias_add()

tf.nn.crelu()

tf.nn.relu6()

tf.nn.softplus()

tf.nn.softsign()

tf.nn.dropout()#防止过拟合,用来舍弃某些神经元

激活函数输入均要计算x,输出均为与x数据类型相同的张量。

import tensorflow as tf

a = tf.constant([[1.0,2.0],[1.0,2.0],[1.0,2.0]])
with tf.Session() as sess:
    print(sess.run(tf.sigmoid(a)))

卷积函数:

卷积函数时构建神经网络的重要支架,是在一批图像上扫描的二维过滤器。

这个函数计算N维卷积之和

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

这个函数对一个4维的输入数据input和4维的卷积核filter进行操作,然后对输入数据进行一个二维的卷积操作,最后得到卷积之后的结果

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

input_data = tf.Variable(np.random.rand(10,9,9,3),dtype=np.float32)
filter_data = tf.Variable(np.random.rand(2,2,3,2),dtype=np.float32)
y = tf.nn.conv2d(input_data,filter_data,strides=[1,1,1,1],padding='SAME')

tf.nn.depthwise_conv2d(input,filter,strides,padding,rate = None,name = None,data_format = None)

tf.nn.separable_conv2d(input,depthwise_filter,pointwise_filter,strides,padding,rate = None,name = None,data_format = None)

tf.nn.atrous_conv2d(value,filter,rate,padding,name=None)

tf.nn.conv2d_transpose(value,filter,output_shape,strides,padding=’SAME’,data_format=’NHWC’,name=None)

tf.nn.convld(value,filters,strides,padding,use_cudnn_on_gpu=None,data_format=None,name=None)

tf.nn.conv3d(input,filter,strides,padding,name=None)

tf.nn.conv3d_transpose(value,fliter,output_shape,strides,padding=’SAME’,name=None)

池化函数:

在神经网络中,池化函数一般跟在卷积函数的下一层

tf.nn.avg_pool()

tf.nn.max_pool()

tf.nn.max_pool_with_argmax()

tf.nn.avg_pool3d()

tf.nn.max_pool3d()

tf.nn.fractional_avg_pool()

tf.nn.fractional_max_pool()

tf.nn.pool()

input_data = tf.Variable(np.random.rand(10,6,6,3),dtype = np.float32)
filter_data = tf.Variable(np.random.rand(2,2,3,10),dtype = np.float32)
y = tf.nn.conv2d(input_data,filter_data,strides = [1,1,1,1],padding = 'SAME')
output = tf.nn.avg_pool(value = y,ksize = [1,2,2,1],strides = [1,1,1,1],padding = 'SAME')

分类函数:

tensorflow中常见的分类函数主要有:

tf.nn.sigmoid_cross_entropy_with_logits()

tf.nn.softmax()

tf.nn.log_softmax()

tf.nn.softmax_cross_entropy_with_logits()

tf.nn.sparse_softmax_cross_entropy_with_logits()

    原文作者:CCH陈常鸿
    原文地址: https://zhuanlan.zhihu.com/p/31673019
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞