已解决
卷积网络的发展历史-LeNet
来自网友在路上 169869提问 提问时间:2023-10-07 07:42:56阅读次数: 69
最佳答案 问答题库698位专家为你答疑解惑
简介
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实例
import tensorflow as tfdef 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
查看全文
99%的人还看了
相似问题
- CNN卷积神经网络Python实现
- 竞赛 题目:基于机器视觉opencv的手势检测 手势识别 算法 - 深度学习 卷积神经网络 opencv python
- 时序预测 | Python实现ConvLSTM卷积长短期记忆神经网络股票价格预测(Conv1D-LSTM)
- 卷积神经网络(CNN)天气识别
- FSOD论文阅读 - 基于卷积和注意力机制的小样本目标检测
- YOLOv8改进 | 如何在网络结构中添加注意力机制、C2f、卷积、Neck、检测头
- 人工智能-卷积神经网络之多输入多输出通道
- 多维时序 | MATLAB实现TCN-selfAttention自注意力机制结合时间卷积神经网络多变量时间序列预测
- 基于轻量级卷积神经网络CNN开发构建打架斗殴识别分析系统
- 利用梯度上升可视化卷积核:基于torch实现
猜你感兴趣
版权申明
本文"卷积网络的发展历史-LeNet":http://eshow365.cn/6-16676-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!