zoukankan      html  css  js  c++  java
  • 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()加载到内存中

  • 相关阅读:
    leetcode 309. Best Time to Buy and Sell Stock with Cooldown
    leetcode 714. Best Time to Buy and Sell Stock with Transaction Fee
    leetcode 32. Longest Valid Parentheses
    leetcode 224. Basic Calculator
    leetcode 540. Single Element in a Sorted Array
    leetcode 109. Convert Sorted List to Binary Search Tree
    leetcode 3. Longest Substring Without Repeating Characters
    leetcode 84. Largest Rectangle in Histogram
    leetcode 338. Counting Bits
    git教程之回到过去,版本对比
  • 原文地址:https://www.cnblogs.com/LQ6H/p/10343267.html
Copyright © 2011-2022 走看看