课程笔记:nn.module和LeNet模型

模型创建的步骤4步:
数据
模型
损失函数与优化器
迭代训练

模型:(都基于nn.Module)
(1)模型创建:
a.创建网络层:卷积层,池化层,激活函数层等
b.拼接网络层:LeNet, AlexNet, ResNet等
(2)权值初始化:Xavier,Kaiming,均匀分布,正态分布等

LeNet:
在这里插入图片描述
共7层:Conv1,pool1,Conv2,pool2,fc1,fc2,fc3
在这里插入图片描述
模型构建的两个要素:
1)构建子模块(模型的_init__)
2)拼接子模块(模型的forward)

class LeNet(nn.Module):
	def __init__(self, classes):
		super(LeNet, self).__init__()
		self.conv1 = nn.Conv2d(3, 6, 5) # 3表示输入通道数,6表示输出通道数,5表示卷积核的大小为5*5
		self.conv2 = nn.Conv2d(6, 16, 5)
		self.fc1 = nn.Linear(16*5*5, 120)
		self.fc2 = nn.Linear(120, 84)
		self.fc3 = nn.Linear(84, classes)
	def forward(self, x):
		out = F.relu(self.conv1(x))
		out = F.max_pool2d(out, 2)
		out = F.relu(self.conv2(x))
		out = F.max_pool2d(out, 2)
		out = out.view(0ut.size(0), -1)#展成向量
		out = F.relu(self.fc1(out))
		out = F.relu(self.fc2(out))
		out = self.fc3(out)

torch.nn(pytorch的神经网络模块)
(1)nn.Parameter:张量子类(有张量的基本属性),表示可学习的参数,如weight, bias
(2)nn.Module:所有网络基类,管理网络属性(所有的模型,卷积层,池化层等也是nn.Module类)
(3)nn.functional:函数具体实现,如卷积,池化,激活函数等
(4)nn.init:参数初始化方法

nn.Module:
有8个重要的属性,用于管理模型
parameters:存储管理nn.Parameters类
modules:存储管理nn.Module类
在这里插入图片描述
nn.Module:
(1)一个module可以包含多个子module:卷积层、池化层等这些子module会包含在LeNet大module中
(2)一个module相当于一个运算,必须实现forward()函数:从计算图的角度,一个module是接受一个张量,经过一系列复杂的运算,输出想得到的分类概率(所以得实现前向传播的函数)
(3)每个module都有8个字典管理它的属性

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值