卷积网络的发展历史-LeNet

简介

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

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

特点

LeNet 的特点如下所示:

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

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

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

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

python实例

python 复制代码
import tensorflow as tf

def lenet_model():
    inputs = tf.placeholder(tf.float32, shape=[None, 28, 28, 1])
    conv1 = tf.layers.conv2d(inputs=inputs, filters=6, kernel_size=(5, 5), strides=(1, 1), padding='valid', activation=tf.nn.relu)
    pool1 = tf.layers.max_pooling2d(conv1, (2, 2), strides=(2, 2))
    conv2 = tf.layers.conv2d(inputs=pool1, filters=16, kernel_size=(5, 5), strides=(1, 1), padding='valid', activation=tf.nn.relu)
    pool2 = tf.layers.max_pooling2d(conv2, (2, 2), strides=(2, 2))
    flatten = tf.layers.flatten(pool2)
    dense1 = tf.layers.dense(flatten, 120, activation=tf.nn.relu)
    dense2 = tf.layers.dense(dense1, 84, activation=tf.nn.relu)
    logits = tf.layers.dense(dense2, 10)
    return inputs, logits
相关推荐
金融小师妹几秒前
基于AI能源供给网络模型:霍尔木兹海峡扰动下的全球油品风险传导与区域“油荒概率”评估
深度学习·svn·逻辑回归·能源
wanhengidc4 分钟前
服务器 网络信息安全
运维·服务器·网络
花千树-0106 分钟前
IndexTTS2 在 macOS 性能最佳设置(M1/M2/M3/M4 全适用)
人工智能·深度学习·macos·ai·语音识别·ai编程
CHANG_THE_WORLD6 分钟前
PDF解析器代码详解:从文件结构到交叉引用表解析
网络·pdf
盼小辉丶9 分钟前
PyTorch实战(40)——使用PyTorch构建推荐系统
人工智能·pytorch·深度学习·推荐系统
Coding茶水间11 分钟前
基于深度学习的草莓健康度检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Django+web+训练代码+数据集)
人工智能·深度学习·yolo·机器学习·django
北顾笙98012 分钟前
深度学习day06
人工智能·深度学习
芯盾时代16 分钟前
政务行业面临的网络风险
网络·数据库·网络安全
喝醉的小喵17 分钟前
iptables 规则重启机器后丢失导致k8s网络不可用
网络·后端·容器·kubernetes·虚拟化
运维儿18 分钟前
4.VLAN 技术:二层网络的优化之道
网络·网络协议·tcp/ip·linux 网络·云计算网络