当前位置: 首页 > news >正文

青岛 机械 中企动力提供网站建设小说网站怎么做空间小

青岛 机械 中企动力提供网站建设,小说网站怎么做空间小,大连平台网站建设,网站建设服务协议模板教程#xff1a;j从零开始实现一个基于Pytorch的卷积神经网络 - 知乎 目录 网络结构 1 初始化 2 前向传播forward函数 2.1 forward函数定义 2.2 view函数和size函数 如何获取channels#xff1f; 如何获取batchsize#xff1f; 2.3 forward实现 2.4 main方法调用 模…教程j从零开始实现一个基于Pytorch的卷积神经网络 - 知乎 目录 网络结构 1 初始化 2 前向传播forward函数 2.1 forward函数定义 2.2 view函数和size函数 如何获取channels  如何获取batchsize  2.3 forward实现 2.4 main方法调用 模型命名为LeNet创建一个名为LeNet的类该类继承了nn.Module类写法如下 class LeNet(nn.Module): 网络结构 从图中可以看出其输入32x32的灰度图像由于MNIST数据集的图像为28x28因此我们将输入改为28x28并依次计算每一层输出的特征图大小。其每一层参数大致如下 输入层输入大小28x28通道数为1。注意本层不算LeNet-5的网络结构一般情况下不将输入层视为网络层次结构之一。 C1-卷积层输入大小28x28通道数为1输出大小28x28通道数为6卷积核大小为5x5步长为1边缘补零为2激活函数为ReLU。注意为了提升卷积神经网络的效果在每个卷积层后添加激活函数本教程使用的激活函数为ReLU。 S2-池化层输入大小28x28通道数为6输出大小14x14通道数为6池化核大小为2x2步长为2池化方式为最大池化。 C3-卷积层输入大小14x14通道数为6输出大小10x10通道数为16卷积核大小为5x5步长为1边缘补零为0激活函数为ReLU。 S4-池化层输入大小10x10通道数为16输出大小5x5通道数为16池化核大小为2x2步长为2池化方式为最大池化。 C5-卷积层输入大小5x5通道数为16输出大小1x1通道数为120卷积核大小为5x5步长为1边缘补零为0激活函数为ReLU。注意这层也可以看作全连接层可以通过全连接的方法实现。 F6-全连接层输入为120维向量输出为84维向量激活函数为ReLU。 OUTPUT-输出层输入为84维向量输出为10维向量。注意该层也是全连接层且不带激活函数。 1 初始化 __init__函数即初始化主要用于定义每一层的构成如卷积、池化层等根据网络结构对每一层的参数进行定义。 # 初始化模型def __init__(self):super(LeNet,self).__init__()# 定义每一层的操作和参数self.C1 nn.Conv2d(in_channels1,out_channels6,kernel_size5,stride1,padding2)self.R1 nn.ReLU()self.S1 nn.MaxPool2d(kernel_size2)self.C2 nn.Conv2d(in_channels6,out_channels16,kernel_size5,stride1,padding0)self.R2 nn.ReLU()self.S2 nn.MaxPool2d(kernel_size2)self.C3 nn.Conv2d(in_channels16,out_channels120,kernel_size5,padding0,stride1)self.R3 nn.ReLU()#F6-全连接层输入为120维向量输出为84维向量激活函数为ReLU。self.f nn.Linear(in_features120,out_features84)self.R4 nn.ReLU()# OUTPUT-输出层输入为84维向量输出为10维向量。注意该层也是全连接层且不带激活函数。self.OUT nn.Linear(in_features84,out_features10) 2 前向传播forward函数 forward函数即前向传播主要用于确定每一层之间的顺序使得模型可以正常使用。 2.1 forward函数定义 前向传播函数需要传入self和输入的变量一般写为x即forward(self, x)。在函数内把之前定义好的层按顺序调用每一层在计算后会返回结果 我们需要一个变量进行保存即c1 self.C1(x)在最后将最后一步的计算结果返回。当网络中不存在跳跃连接或密集连接等分支结构的情况下可以直接用x作为中间变量。 forward函数定义步骤如下 依次调用前面定义的网络层修改需要变化的张量维度 2.2 view函数和size函数 在pytorch中图像数据以一个四维张量传入模型其形状为[batch_size, channels, h, w]。 batch_size即批大小我们一般会一次性将一批图像送进网络处理这一批图像的数量即为批大小channel即通道数也就是之前卷积层的channelsh和w分别代表图像的高和宽。 Conv2d和MaxPool2d都接受以上形状的输入ReLU接受任意形状的输入而Linear只接受传入一个二维的张量形状为[batch_size, length] length表示长度即向量的维度。 因此可以使用view()方法把卷积层输出的四维张量转换为二维张量。 e.g. 最后一个卷积层生成的特征图形状为[batch_size, channels, 1, 1]要将其转换为[batch_size, channels]。- view(batchsize,channels) 如何获取channels  可直接填入-1。 填写-1会让电脑自动计算这一栏所需参数的大小这个方法在实际搭建模型的时候非常好用因此大家一般都会写为-1。 如何获取batchsize  若已知批大小就可以直接把batch_size填入。但是在实际使用中batch_size可能会随着超参数的变化而改变。 使用size()方法获取batchsize。 在size方法的括号内填上维度即可返回所在维度的大小如x是一个形状为[16, 3, 384, 256]的张量则x.size(0)可获取张量中第一个维度的大小即16为批大小。 最后使用x保存返回值x x.view(x.size(0), -1) 2.3 forward实现 def forward(self,x):x self.C1(x)x self.R1(x)x self.S1(x)x self.C2(x)x self.R2(x)x self.S2(x)x self.C3(x)x self.R3(x)# 改变维度x x.view(x.size(0),-1)x self.f(x)x self.R4(x)x self.OUT(x)return x 2.4 main方法调用 if __name__ __main__:model LeNet() # 测试数据a torch.randn(1, 1, 28, 28)b model(a)print(b) 2.5 代码  import torch import torch.nn as nnclass LeNet(nn.Module):# 初始化模型def __init__(self):super(LeNet,self).__init__()# 定义每一层的操作和参数self.C1 nn.Conv2d(in_channels1,out_channels6,kernel_size5,stride1,padding2)self.R1 nn.ReLU()self.S1 nn.MaxPool2d(kernel_size2)self.C2 nn.Conv2d(in_channels6,out_channels16,kernel_size5,stride1,padding0)self.R2 nn.ReLU()self.S2 nn.MaxPool2d(kernel_size2)self.C3 nn.Conv2d(in_channels16,out_channels120,kernel_size5,padding0,stride1)self.R3 nn.ReLU()#F6-全连接层输入为120维向量输出为84维向量激活函数为ReLU。self.F4 nn.Linear(in_features120,out_features84)self.R4 nn.ReLU()# OUTPUT-输出层输入为84维向量输出为10维向量。注意该层也是全连接层且不带激活函数。self.OUT nn.Linear(in_features84,out_features10)# 定义前向传播层def forward(self,x):x self.C1(x)x self.R1(x)x self.S1(x)x self.C2(x)x self.R2(x)x self.S2(x)x self.C3(x)x self.R3(x)# 改变维度x x.view(x.size(0),-1)x self.F4(x)x self.R4(x)x self.OUT(x)return xif __name__ __main__:model LeNet()a torch.randn(1, 1, 28, 28)b model(a)print(b) 3  数据集 download_dataset.py  import torchvision torchvision.datasets.MNIST(./data, downloadTrue) 导入torchvision包torchvision.dataset中有很多经典的数据集可以下载。 下载MNIST数据集torchvision.datasets.MNIST(root, train, transform, target_transform, download) 设置root为data文件夹将download设置为True运行该文件可完成下载。
http://www.zqtcl.cn/news/113243/

相关文章:

  • 太原网站建设方案服务佛山市建设工程有限公司
  • 智能网站建设平台php mysql 网站源码
  • 夏天做那些网站能致富百度关键词价格怎么查询
  • 厦门微信网站专业从事网站开发公司
  • 网站标题的写法湖南如何做网络营销
  • 设计做兼职的网站求推荐医院英文网站建设
  • 有没得办法可以查询一个网站有没得做竞价呀ai可以用来做网站吗
  • 俄乌局势最新消息惠州seo排名优化
  • 常州发布信息的有什么网站电商平台建设公司
  • 高新区手机网站建设长沙关键词优化服务
  • 网站开发预算报价表推销网站的方法
  • 做网站需要几个人昆明旅行社网站开发
  • 上海产品网站建设网站建设分为哪些
  • 史志网站建设在线网站建设工程标准
  • 青海省建设工程在哪个网站发布北京专业网站外包公司
  • 东营网站建设公司wordpress获取子分类
  • 网站的尾页要怎么做d代码做网站
  • 自己做一元购网站烟台网站设计公司推荐
  • 有没有做彩票直播的网站成都十八个网红打卡地
  • 急求聊城网站建设网站服务器管理系统
  • 做网站需要什么许可证商场设计效果图
  • html网页制作视频windows优化大师有哪些功能
  • 国外建站主机帝国手机网站cms系统
  • 响应式网站建设哪家好网站空间支付方式
  • 腾讯广告建站工具贵州企业网站建设价格
  • 最新的网站建设架构wordpress管理员头像
  • 手机网站模版化工网站建设公司
  • 网站建设 会计分录北京网站建设主页
  • 北京市建设监理协会网站网站一般多少钱
  • 做网站零成本网站如何做成app