• Tensorflow笔记——卷积神经网络


    实践反作用于理论

    一、概论。

      全连接NN:每个神经元与前后相邻层的每一个神经元都有连接关系,输入是特征,输出为预测的结果,参数的个数:∑( 前层 X 后层 + 后层 )

      为防止过拟合,实际应用中会先对原始图像进行特征提取,在把提取到的特征喂给全连接网络,

      卷积(Convolutional):可认为是一种有效提取图像特征的方法。一般会用一个正方形卷积核,遍历图片上的每个点。图片区域内,相对应的每一个像素值,乘以卷积核内相对应点的权重,求和,再加上偏置。

      池化(pooling):用于减少特征数量。最大值池化可以提取图片纹理,均值池化可以保留背景特征

    ## 输出图片边长=( 输入图片边长 - 卷积核长+1 ) / 步长   

    二、CNN模型的主要模块

    1、高层次抽象特征 精减特征点:卷积 激活 池化

    2、全连接

    三、tensorflow相关函数

      1、计算卷积:

      tf.nn.conv2d (输入描述,eg.[ batch , 5,5( 注:5,5分辨率 ),3( 注:通道数,此处为rgb三通道 )  ]   

            卷积核描述,eg.[ 3,3(  注:行列分辨率:3*3 ), 1( 注:通道数) ,16(注:核个数)  ] ( 注:说明输出深度是16,输出通道为16,有16个输出 )

            核滑动步长,eg.[ 1(注:固定是1) , 1( 注:行步长), 1( 注:列步长) ,1(注:固定是1,两个固定表示不在batch或channel间进行滑动) ]

            padding='VALID' ( 注:valid表示不用全零填充,否则为same )  

            )

      2、计算池化:

      最大池化为tf.nn.max_pool,平均池化: tf.nn.avg_pool

      pool=tf.nn.max_pool(  输入描述,eg.[ batch , 28,28 (注:行列分辨率 28*28 ) ,6(通道数)  ] 

                池化描述(仅大小),eg.[ 1(注:固定是1) ,  2,2(注:行列分辨率 2*2),  1(注:固定是1) ]

                池化核滑动步长,eg.[1(注:固定是1) , 2( 注:行步长), 2( 注:列步长) ,1(注:固定是1)  ] 

                padding = ' SAME '

              )

      3、舍弃(Dropout):

      在神经网络的训练过程中,将一部分神经元按照一定概率从神经网络中暂时舍弃。使用时被舍弃的神经元恢复连接。用于防止过拟合。

      tf.nn.dropout( 上层输出,暂时舍弃的概率 ) 

      

  • 相关阅读:
    博客园 Open Live Writer 博客编辑工具&代码高亮显示插件 安装使用说明
    测试高亮代码
    Linux 查看操作系统版本信息 uname
    Linux 查看登录用户信息 who & whoami
    Linux crontab 每5秒钟执行一次 shell 脚本 的方法
    Linux 查找特定程序 whereis
    Java 语言实现 MD5 加密
    Maven 官网 查找&下载 jar包& pom引用 完美方案
    ArcGIS Engine 10.x许可代码
    IIS 无法显示网页 目前访问网站的用户过多
  • 原文地址:https://www.cnblogs.com/z-bear/p/10373898.html
Copyright © 2020-2023  润新知