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()加载到内存中

posted @ 2019-01-31 13:36  LQ6H  阅读(269)  评论(0编辑  收藏  举报