• 卷积网络的发展历史-LeNet


    简介

    LeNetCNN结构的开山鼻祖,第一次定义了卷积神经网络的结构。

    LeNet模型包含了多个卷积层和池化层,以及最后的全连接层用于分类。其中,每个卷积层都包含了一个卷积操作和一个非线性激活函数,用于提取输入图像的特征。池化层则用于缩小特征图的尺寸,减少模型参数和计算量。全连接层则将特征向量映射到类别概率上。

    特点

    LeNet 的特点如下所示:

    1)定义了卷积神经网络(Convolutional Neural Network, CNN)的基本框架:卷积层+池化层(Pooling Layer+全连接层;

    2)定义了卷积层(Convolution Layer),与全连接层相比,卷积层的不同之处有两点:局部连接(引进“感受野”这一概念)、权值共享(减少参数数量),卷积计算公式:

    3)利用池化层进行下采样(Downsampooling),从而减少计算量,池化计算公式:

    4)用tanh作为非线性激活函数(现在看到的都是改进过的LeNet了,用ReLu代替 tanh。相较于sigmoidtanh以原点对称(zero-centered),收敛速度会快。

    python实例

    1. import tensorflow as tf
    2. def lenet_model():
    3. inputs = tf.placeholder(tf.float32, shape=[None, 28, 28, 1])
    4. conv1 = tf.layers.conv2d(inputs=inputs, filters=6, kernel_size=(5, 5), strides=(1, 1), padding='valid', activation=tf.nn.relu)
    5. pool1 = tf.layers.max_pooling2d(conv1, (2, 2), strides=(2, 2))
    6. conv2 = tf.layers.conv2d(inputs=pool1, filters=16, kernel_size=(5, 5), strides=(1, 1), padding='valid', activation=tf.nn.relu)
    7. pool2 = tf.layers.max_pooling2d(conv2, (2, 2), strides=(2, 2))
    8. flatten = tf.layers.flatten(pool2)
    9. dense1 = tf.layers.dense(flatten, 120, activation=tf.nn.relu)
    10. dense2 = tf.layers.dense(dense1, 84, activation=tf.nn.relu)
    11. logits = tf.layers.dense(dense2, 10)
    12. return inputs, logits

  • 相关阅读:
    自适应网站设计特点有哪些?
    详解内存SDRAM原理(P-Bank、L-Bank、刷新、预充电等)
    高阶算法班从入门到精通之路
    软件测试需求分析
    【勇敢饭饭,不怕刷题之链表】两个链表的操作
    es索引的性能优化配置
    防止会议被入侵,华为云会议更专业
    【C++学习手札】模拟实现vector
    mysql总结
    总结springboot项目中一些后端接收前端传参的方法
  • 原文地址:https://blog.csdn.net/qq_20660115/article/details/133610746