LeNet卷积神经网络——识别手写数字图像

该博客介绍了如何使用MXNet的Gluon API构建经典的LeNet卷积神经网络模型。LeNet由两个卷积层块和三个全连接层组成,每个卷积层后接最大池化层,用于图像模式识别和位置不敏感性。全连接层将特征平面展平,最终输出10个类别。示例代码展示了如何通过Sequential类逐层构建模型,并展示每一层的输出形状。
摘要由CSDN通过智能技术生成

LeNet由卷积层块全连接层块组成。

卷积层块里的基本单位是卷积层后接最大池化层。卷积层用来识别图像里的空间模式,如线条和物体局部,之后的最大池化层用来降低卷积层对位置的敏感性。卷积层块由两个这样的基本单位重复堆叠构成。卷积层块的输出形状为(批量大小,通道,高,宽)。

全连接层块会将小批量中每个样本变平,也就是说,全连接层的输入形状将变成二维,其中第一维是小批量中的样本,第二维是每个样本变平后的向量表示,且向量长度为通道、高和宽的乘积。

以下通过Sequential类实现LeNet模型:

import d2lzh as d2l
import mxnet as mx
from mxnet import autograd, gluon, init, nd
from mxnet.gluon import loss as gloss,nn
import time

net=nn.Sequential()
net.add(nn.Conv2D(channels=6,kernel_size=5,activation='sigmoid'),
       nn.MaxPool2D(pool_size=2,strides=2),
       nn.Conv2D(channels=16,kernel_size=5,activation='sigmoid'),
       nn.MaxPool2D(pool_size=2,strides=2),
       nn.Dense(120,activation='sigmoid'),
       nn.Dense(84,activation='sigmoid'),
       nn.Dense(10))

X=nd.random.uniform(shape=(1,1,28,28))
net.initialize()
for layer in net:
    X=layer(X)
    print(layer.name,'output shape:\t',X.shape)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值