Sequential用法

news2024/11/13 4:10:35

目录

1.官方文档解释

1.1原文参照 

1.2中文解释 

 2.参考代码

3.一些参考使用 

3.1生成网络 

3.2 感知机的实现

3.3组装网络层

1.官方文档解释

1.1原文参照 

A sequential container. Modules will be added to it in the order they are passed in the constructor. Alternatively, an of modules can be passed in. The method of accepts any input and forwards it to the first module it contains. It then “chains” outputs to inputs sequentially for each subsequent module, finally returning the output of the last module.OrderedDictforward()Sequential

The value a provides over manually calling a sequence of modules is that it allows treating the whole container as a single module, such that performing a transformation on the applies to each of the modules it stores (which are each a registered submodule of the ).SequentialSequentialSequential

What’s the difference between a and a torch.nn.ModuleList? A is exactly what it sounds like–a list for storing s! On the other hand, the layers in a are connected in a cascading way.SequentialModuleListModuleSequential

1.2中文解释 

 即是说

这是顺序容器。 模块将按照它们在构造函数。或者,模块可以是传入。接受任何的方法输入并将其转发到它包含的第一个模块。然后它 “链”输出到每个后续模块的顺序输入,最后返回最后一个模块的输出。 通过手动调用序列提供的值模块是它允许将整个容器视为 单个模块,这样对执行转换适用于它存储的每个模块(这些模块每个的注册子模块)。

简单说来就是:

Sequential 本质是一个模块,模块中可以继续添加模块。这意味着我们可以在 Sequential 中添加其它的模块。添加完成后,Sequential 会将这些模块组成一个流水线,输入将依次通过这些模块得到一个输出。
 

 2.参考代码

# Using Sequential to create a small model. When `model` is run,
# input will first be passed to `Conv2d(1,20,5)`. The output of
# `Conv2d(1,20,5)` will be used as the input to the first
# `ReLU`; the output of the first `ReLU` will become the input
# for `Conv2d(20,64,5)`. Finally, the output of
# `Conv2d(20,64,5)` will be used as input to the second `ReLU`
model = nn.Sequential(
          nn.Conv2d(1,20,5),
          nn.ReLU(),
          nn.Conv2d(20,64,5),
          nn.ReLU()
        )

# Using Sequential with OrderedDict. This is functionally the
# same as the above code
model = nn.Sequential(OrderedDict([
          ('conv1', nn.Conv2d(1,20,5)),
          ('relu1', nn.ReLU()),
          ('conv2', nn.Conv2d(20,64,5)),
          ('relu2', nn.ReLU())
        ]))

3.一些参考使用 

3.1生成网络 

生成一个网络,其中包含一个具有256个单元和ReLU激活函数的全连接隐藏层, 然后是一个具有10个隐藏单元且不带激活函数的全连接输出层。

import torch
from torch import nn
from torch.nn import functional as F

net = nn.Sequential(nn.Linear(20, 256), nn.ReLU(), nn.Linear(256, 10))

X = torch.rand(2, 20)
net(X)

3.2 感知机的实现

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

net = nn.Sequential(nn.Flatten(),
                    nn.Linear(784, 256),
                    nn.ReLU(),
                    nn.Linear(256, 10))

def init_weights(m):
    if type(m) == nn.Linear:
        nn.init.normal_(m.weight, std=0.01)

net.apply(init_weights);

 训练过程的实现与softmax回归完全相同, 这种模块化设计使我们能够将与模型架构有关的内容独立出来。

batch_size, lr, num_epochs = 256, 0.1, 10
loss = nn.CrossEntropyLoss(reduction='none')
trainer = torch.optim.SGD(net.parameters(), lr=lr)

train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, trainer)

3.3组装网络层

两个参数, 一个用于表示权重,另一个用于表示偏置项。 在此实现中,使用修正线性单元作为激活函数。 该层需要输入参数:in_unitsunits,分别表示输入数和输出数。

class MyLinear(nn.Module):
    def __init__(self, in_units, units):
        super().__init__()
        self.weight = nn.Parameter(torch.randn(in_units, units))
        self.bias = nn.Parameter(torch.randn(units,))
    def forward(self, X):
        linear = torch.matmul(X, self.weight.data) + self.bias.data
        return F.relu(linear)
linear = MyLinear(5, 3)
linear.weight

linear(torch.rand(2, 5))

net = nn.Sequential(MyLinear(64, 8), MyLinear(8, 1))
net(torch.rand(2, 64))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/683422.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据治理的关键能力是什么?如何发力?

工业时代历经百年形成的全球经济体系、治理体系,在突如其来的新冠疫情冲击和数字技术高速发展下,开始加速变革。从社会经济系统来看,未来人类社会将向“实体数字”的二维空间发展。数字经济将是基于这个二维空间而建立的新经济模式&#xff0…

做好新媒体宣传的工作总结

新媒体宣传工作总结1 不得不说时间过的真快,自己在_公司_部工作已有两多月了。这段时间是我人生的一个重大转折点,一个在校生成为一名社会人员的转型期,在这期间我失去了,也收获了,更多的是我成长了。 走出校园我还懵懵…

一文彻底教你如何mysql8驱动 jdbc下载

这里以mysql-connector-java-8.0.29.jar为例 打开MySQL官网,点击DOWNLOADS,如下图 进入页面后,滚动到下方,点击 MySQL Community (GPL) Downloads 进入后,点击Connector/J 选择项 这里选择的是zip包&#xff0c…

OpenMMLab OpenMMLab mmdeploy v1.1.0模型部署(一)

一、MMDepoly整体框架 模型部署是指把机器学习训练生成的算法模型,部署到各类云、边、端设备上去, 并使之高效运行,从而将算法模型实际地应用到现实生活中的各类任务中去,从而实现AI的智能化转型。 目前,我们已经支持…

windows下进行c++开发环境的搭建以及使用cmake跨平台工具进行c++代码的开发

windows下使用cmake进行c程序的开发 要求环境条件简单使用cmake 要求环境条件 安装mingw64并配置环境变量 检查命令 gcc - v安装cmake并配置环境变量 检查命令 cmake – version安装vscode安装vscode开发插件,cextension pack(这是一系列整合包) tips: 腾讯微云min…

el-popover修改宽度

popper-class可以修改其样式。 写法&#xff1a; <el-popover v-if"showNav false" popper-class"el-popover-self"><template #reference><el-icon class"recorder_open"><DArrowLeft style"color: #ffb814"/&…

23年测试前景?测试开发?开发测试框架你懂多少?

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 基本概念 库&…

接口文档这几点我们一定要注意

我们在做开发的时候&#xff0c;经常需要输出接口文档&#xff0c;我们的接口文档&#xff0c;如果输出的有问题&#xff0c;首先给别人的感觉就是觉得你不专业&#xff0c;另外好的接口文档&#xff0c;给了他人以后&#xff0c;就完全可以按照你接口文档去做对接&#xff0c;…

【vue】项目开发常见问题目录

问题目录&#xff08;持续更新&#xff01;&#xff09; 0&#xff0c;页面初始化1&#xff0c; v-if 与 v-for 同时使用报错的问题2&#xff0c; 页面传参注意事项3&#xff0c; Vue路由this.$router.push转跳同一个页面不刷新4&#xff0c;NavigationDuplicated: Avoided red…

Linux之Centos7.6版本下载及安装Go语言环境配置,安装Go1.18版本教程笔记-2023版

文章目录 一、Linux下安装Go环境1.远程获取2.解压3. 添加环境变量5.Go环境配置图配置完成信息图 二、VsCode连接我们Go2.1安装对应的插件2.2进行连接3.相关配置4.成功连接 一、Linux下安装Go环境 推荐在linux下安装Go,因为windows配置的话有些运行不了&#xff0c;在我做Mit6.8…

【SpringCloud学习笔记】gateway网关

gateway网关 核心概念&#xff1a; 路由&#xff08;route&#xff09;&#xff1a;路由信息由 D、目标 RI、一组断言和一组过滤器组成。如果断言路由为真&#xff0c;则说明请求的 URI 和配配断言&#xff08;predicate&#xff09;&#xff1a; Java8 中的断言函数&#xf…

5种raid冗余磁盘阵列

1 RAID&#xff1f;作用&#xff1f; 1.1 RAID RAID就是冗余磁盘阵列&#xff0c;通常称作「磁盘阵列」的RAID (Redundant Array of Independent Disks)功能&#xff0c;多半是应用在NAS这类肩负资料储存的设备上&#xff0c;它能依据NAS里硬盘数量、容量的不同&#xff0c;提…

频段、信道、信道带宽、传输速率无线路由器2.4GHz和5GHz的区别?

无线通信是指电磁波经过空间传播传递信息的通讯方式&#xff0c;也被称为无线电通信。无论是采用何种的无线接入技术&#xff0c;都会涉及到4个重要的参数&#xff1a; 第一、频段 无线通信使用的是电磁波&#xff0c;既然是波&#xff0c;那就有频率&#xff0c;通过将电磁波…

使用 Jetpack Compose 创建自定义的对话框(Dialog)

在 Jetpack Compose 中&#xff0c;对话框&#xff08;Dialog&#xff09;是一种常见的用户界面组件&#xff0c;用于展示重要的信息、确认操作或者收集用户输入。本篇博客将带你深入了解 Jetpack Compose 中的对话框&#xff0c;并展示如何创建自定义的对话框&#xff0c;以满…

复试线即国家线!你敢不敢冲?

List item 一、学校及专业介绍 成信大近年也比较热门&#xff0c;全称成都信息工程大学&#xff08;Chengdu University of Information Technology&#xff09;&#xff0c;位于四川省成都市&#xff0c;为教育部首批“卓越工程师教育培养计划”试点高校、“四川2011计划”、“…

2023一造各科速记手册

[考点]我国建设项目总投资及工造价的构成 生产性建设项目总投资包括建设投资、建设期利息和流动资金:非生产性建设项目总投资包括建设投资、建设期利息。其中建设投资和建设期利息之和对应于固定资产投资&#xff0c;固定资产投资与建设项目的工程造价在量上相等。 工程造价是…

STM32单片机(七)ADC模拟数字转换器----第二节:ADC模数转换器练习1(AD单通道)

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

【送书福利-第十三期】计算机核心基础知识需要搞懂哪些?

大家好&#xff0c;我是洲洲&#xff0c;欢迎关注&#xff0c;一个爱听周杰伦的程序员。关注公众号【程序员洲洲】即可获得10G学习资料、面试笔记、大厂独家学习体系路线等…还可以加入技术交流群欢迎大家在CSDN后台私信我&#xff01; 本文目录 一、前言二、书籍介绍1、《深入…

Flink基础概念及常识

1.flink入门 官方定义&#xff1a;Apache Flink是一个框架和分布式处理引擎&#xff0c;用于在无边界和有边界数据流上进行有状态的计算&#xff0c;Flink能在所有常见集群环境中运行&#xff0c;并能以内存速度和任意规模进行计算。 简言之&#xff0c;Flink是一个分布式的计…

AUTOSAR(ETAS)工具ISOLAR简介

注&#xff1a;今天安装ETAS遇到了很多坑&#xff1a; 软件需要安装在VMware的windows虚拟机中&#xff0c;目的是因为公司的ETAS工具买的软件license是与电脑的mac地址绑定的&#xff0c;所以要想用ETAS软件&#xff0c;就必须使用虚拟机&#xff0c;然后更改mac地址&#xf…