• 使用Tensorflow进行完整的深度神经网络CNN训练完成图片识别案例2


    未完待续。上一张链接:https://blog.csdn.net/dongbao520/article/details/125456950

    卷积神经网络

    • Convolutional neural networks
    • 视觉皮层、感受野,一些神经元看线,一些神经元看线的
    方向,一些神经元有更大的感受野,组合底层的图案
    • 1998年Yann LeCun等人推出了LeNet-5架构,广泛用于手
    写体数字识别,包含全连接层和sigmoid激活函数,还有卷
    积层和池化
    卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一 [1-2] 。卷积神经网络具有表征学习(representation learning)能力,能够按其阶层结构对输入信息进行平移不变分类(shift-invariant classification),因此也被称为“平移不变人工神经网络(Shift-Invariant Artificial Neural Networks, SIANN

    卷积神经网络仿造生物的视知觉(visual perception)机制构建,可以进行监督学习和非监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化(grid-like topology)特征,例如像素和音频进行学习、有稳定的效果且对数据没有额外的特征工程(feature engineering)要求完整的原理相关可以---->>参考

    对于感受野:
    在这里插入图片描述

    对于预训练的网络
    在这里插入图片描述复用TensorFlow模型
    在这里插入图片描述
    CNN里面最重要的构建单元就是卷积层
    • 神经元在第一个卷积层不是连接输入图片的每一个像素,
    只是连接它们感受野的像素,以此类推,第二个卷积层的
    每一个神经元仅连接位于第一个卷积层的一个小方块的神
    经元
    卷积层简图
    在这里插入图片描述
    在这里插入图片描述
    卷积运算案例:

    在这里插入图片描述
    在这里插入图片描述
    步长为2,则有
    在这里插入图片描述
    Filter卷积核
    • Convolution kernels
    • Vertical line filter 中间列为1,周围列为0
    • Horizontal line filter 中间行为1,周围行为0
    • 7*7 matrix

    在这里插入图片描述
    在一个特征图里面,所有的神经元共享一样的参数(
    weights bias),权值共享
    • 不同的特征图有不同的参数

    在这里插入图片描述
    卷积训练过程
    在这里插入图片描述

    Padding模式

    VALID
    • 不适用zero padding,有可能会忽略图片右侧或底下,这个得看stride的设置
    • SAME
    • 必要会加zero padding,这种情况下,输出神经元个数等于输入神经元个数除以步长 ceil(13/5)=3

    在这里插入图片描述

    池化Pooling处理

    目标就是降采样subsample,shrink,减少计算负荷,内存使用,参数数量(也可防止过拟合)• 减少输入图片大小也使得神经网络可以经受一点图片平移,不受位置的影响
    • 正如卷积神经网络一样,在池化层中的每个神经元被连接到上面一层输出的神经元,只对应一小块感受野的区域。我们必须定义大小,步长,padding类型
    • 池化神经元没有权重值,它只是聚合输入根据取最大或者是求均值
    • 2*2的池化核,步长为2,没有填充,只有最大值往下传递

    在这里插入图片描述
    长和宽两倍小,面积4倍小,丢掉75%的输入值
    • 一般情况下,池化层工作于每一个独立的输入通道,所以输出的深度和输入的深度相同

    CNN架构

    • 典型的CNN架构堆列一些卷积层:

    • 一般一个卷积层后跟ReLU层,然后是一个池化层,然后另一些个卷积层+ReLU层,然后另一个池化层,通过网络传递的图片越来越小,但是也越来越深,例如更多的特征图!
    • 最后常规的前向反馈神经网络被添加,由一些全连接的层+ReLU层组成,最后是输出层预测,例如一个softmax层输出预测的类概率
    • 一个常见的误区是使用卷积核过大,你可以使用和99的核同样效果的两个33的核,好处是会有更少的参数,简化了运算。
    在这里插入图片描述未完待续。。

  • 相关阅读:
    [附源码]Python计算机毕业设计Django的残障人士社交平台
    JavaScript Continue语句
    JavaEE学习——Java高级部分总结
    移动应用-Android-开发指南
    Boolean源码解剖学
    python 变量引用,值变量
    Python运维学习Day01-文件基本操作
    Linux:kubernetes(k8s)探针LivenessProbe的使用(9)
    从零开始配置 vim(10)——快捷键配置
    java基础之jvm4
  • 原文地址:https://blog.csdn.net/dongbao520/article/details/125457447