Tensorflow搭建神经网络的主要函数
Tensorflow搭建神经网络的主要函数
梳理利用Tensorflow搭建神经网络的整个过程中使用的主要函数
一.第1步:网络的输入
神经网络的输入可以利用占位符声明
1.占位符
tf.placeholder(dtype,shape=None,name=None)
二.第2步:搭建网络
如果搭建的是全连接神经网络,则主要使用矩阵乘法和加法的函数
1.矩阵乘法函数
tf.matmul(a,b,transpose_a=False,transpose_b=False,adjoint_a=False,adjoint_b=False,a_is_sparse=False,b_is_sparse=False,name=None)
2.加法函数
tf.add(x,y,name=None)
如果搭建的是卷积神经网络,则主要使用卷积函数,池化函数和加法函数
3.卷积函数
tf.nn.conv2d(input,filter,strides,padding,use_cudnn_on_gpu=True,data_format='NHWC',dilations=[1,1,1,1],name=None)
4.池化函数
tf.nn.max_pool(value,ksize,strides,padding,data_format='NHWC',name=None)
tf.nn.avg_pool(value,ksize,strides,padding,data_format='NHWC',name=None)
加法函数和搭建全连接神经网络使用的加法函数相同。当然可以直接使用加法运算符"+"
为了防止过拟合,可以添加dropout操作,对应的函数如下:
tf.nn.dropout(x,keep_prob,noise_shape=None,seed=None,name=None)
为了加快收敛速度,可以添加BN操作
tf.moments(x,axes,shitf=None)
tf.nn.batch_normalization(x,mean,variance,offset,scale,variance_epsilon)
搭建神经网络使用如下激活函数
tf.nn.sigmoid(x,name=None)
tf.nn.tanh(x,name=None)
tf.nn.relu(features,name=None)
tf.nn.relu6(features,alpha=0.2,name=None)
tf.nn.crelu(features,name=None)
tf.nn.selu(features,name=None)
tf.nn.softplus(features,name=None)
r=tf.nn.softsign(features,name=None)
三.第3步:创建损失函数
tf.reduce_sum(input_tensor,axis=None,keepdims=None,name=None,reduction_indices=None,keep_dims=None)
tf.nn.sigmoid_cross_entropy_with_logits(abels=None,logits=None)
tf.nn.softmax_cross_entropy_with_logits_2(abels=None,logits=None)
四.第4步:选择优化器(即梯度下降法)
tf.train.GradientDescentOptimizer
tf.train.AdagradOptimizer
tf.train.MomentumOptimizer
tf.train.RMSPropOptimizer
tf.train.AdadeltaOptimizer
tf.train.AdamOptimizer
五.第5步:评估模型的准确率
评估模型的准确率就是对比人工分类和模型分类
tf.equal(x,y,name=None)
使用对比函数,返回值是bool型,所以需要类型转换函数:
tf.cast(x,dtype,name=None)
然后根据cast的返回值,利用平均值函数tf.reduce_mean(input_tensor,axis=None)计算准确率(百分比)
六.第6步:保存和加载模型
训练模型结束后,需要保存模型,创建类tf.train.Saver,然后利用成员函数save()保存模型
模型加载时,利用其成员函数restore()加载到内存中