李沐58_深层循环神经网络——自学笔记

!pip install --upgrade d2l==0.17.5  #d2l需要更新

简洁实现

实现多层循环神经网络所需的许多逻辑细节在高级API中都是现成的。

import torch
from torch import nn
from d2l import torch as d2l

batch_size, num_steps = 32, 35
train_iter, vocab 
### 讲解下的LeNet卷积神经网络 #### LeNet架构概述 LeNet作为早期的卷积神经网络之一,在手写字符识别方面取得了显著成果。该模型由多个层次构成,包括两组交替出现的卷积层和下采样层(即最大池化),随后接两个全连接层[^1]。 #### 架构特点 - **输入层**:接受固定大小的灰度图像。 - **卷积层**:通过应用不同数量的小型滤波器来提取局部特征;这些滤波器会在整个图像上滑动以捕捉空间上的模式。 - **激活函数**:通常采用Sigmoid或者ReLU等非线性变换,使网络能够处理更复杂的映射关系。 - **子采样/池化操作**:减少数据维度的同时保留重要信息,有助于提高计算效率并防止过拟合。 ```python import torch.nn as nn class LeNet(nn.Module): def __init__(self, num_classes=10): super(LeNet, self).__init__() # 定义卷积层 self.conv_layers = nn.Sequential( nn.Conv2d(in_channels=1, out_channels=6, kernel_size=5), nn.ReLU(), nn.MaxPool2d(kernel_size=2), nn.Conv2d(in_channels=6, out_channels=16, kernel_size=5), nn.ReLU(), nn.MaxPool2d(kernel_size=2) ) # 定义全连接层 self.fc_layers = nn.Sequential( nn.Linear(16 * 4 * 4, 120), nn.ReLU(), nn.Linear(120, 84), nn.ReLU(), nn.Linear(84, num_classes) ) def forward(self, x): conv_out = self.conv_layers(x).view(-1, 16*4*4) fc_out = self.fc_layers(conv_out) return fc_out ``` #### 关键改进点 相比于传统的多层感知机,LeNet引入了共享权重机制以及稀疏交互特性,这不仅降低了参数量还增强了泛化能力[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值