Pytorch神经网络基础——层和块(笔记)

news/2025/3/30 14:45:33/

 一。层和块

1.多层感知机

import torch
from torch import nn
from torch.nn import functional as Fnet = nn.Sequential(nn.Linear(20, 256), nn.ReLU(), nn.Linear(256, 10))  # 定义网络
X = torch.rand(2, 20)  # 2*20随机矩阵
print(net(X))

输出结果:

tensor([[ 0.0205, -0.0037,  0.0914,  0.1545,  0.1693, -0.1086,  0.0351, -0.1155,-0.0167,  0.0730],[-0.0184, -0.0351,  0.1344,  0.1300,  0.3674, -0.2407,  0.0150,  0.0474,-0.0537,  0.1941]], grad_fn=<AddmmBackward0>)

nn.Sequential构建模型,层的执行顺序是按照参数传递的。nn.Sequential是特殊的Module,维护了有序列表。

net(X)的调用过程:

实际调用的是net.__call__(X)

将列表的每一个块连接在一起,前一个块的输出是后一个快的输入。

2.自定义块包含一个多层感知机,其具有256个隐藏单元的隐藏层和一个10维输出层

 实例化网络net = MLP()

net(X)的执行过程:

执行net.__call__(X)函数,在call函数里面调用forward函数

输出结果:

tensor([[-0.1729, -0.1916,  0.1419,  0.0144, -0.2258, -0.2547,  0.1492,  0.0843,-0.0807,  0.1584],[-0.1160, -0.0921,  0.2902,  0.0131,  0.0273, -0.1875,  0.0120,  0.0546,-0.0591,  0.1023]], grad_fn=<AddmmBackward0>)

3.自己编写Sequential函数:

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

net(X)的执行过程:

①在初始化网络MySequential(nn.Linear(20, 256), nn.ReLU(), nn.Linear(256, 10))时通过构造方法把网络层通过循环添加到链表里

 for idx, module in enumerate(args):

          # 变量_modules中。_module的类型是OrderedDict

            self._modules[str(idx)] = module

 ②net(X):

先调用call函数,然后call方法调用forward方法。

def forward(self, X):# OrderedDict保证了按照成员添加的顺序遍历它们for block in self._modules.values():X = block(X)return X

前一个层的输出作为后一个层的输入

4.在正向传播函数执行代码:

 5.混合搭配使用

 


http://www.ppmy.cn/news/300759.html

相关文章

白盒交换机公司产品列表

信息来源&#xff1a; http://www.pica8.com/products/hardware-compatibility-list https://cumulusnetworks.com/products/hardware-compatibility-list/ https://opennetlinux.org/hcl https://github.com/Azure/SONiC/wiki/Supported-Devices-and-Platforms DELL Z9100-ON …

Windows Phone Mango(版本号为7712)的申请开放

最近几天&#xff0c;微软已经开始向App Hub中的注册开发者们推送版本号为7712的Mango更新(不是RTM版)。如果你一直没有得到过微软的Mango Beta测试邀请&#xff0c;现在可以直接到微软申请了。 你需要到https://www.research.net/s/Z95RKYZ填写自己的App Hub中的一些注册信息。…

Mango 7712 is coming

更新完成后&#xff0c;开机LOGO变成红色 估计是为了更加醒目的表示是测试版吧 支持的账户格式更多了 包括office365&#xff0c;Twitter&#xff0c;Linkedin等等 有兴趣的自己update吧 本文转自 sun8134 博客园博客&#xff0c;原文链接&#xff1a; http://www.cnblogs.com/…

Σ-Δ型ADC转换原理及程序设计--AD7712

要理解Σ-Δ型 ADC的工作原理&#xff0c;首先应对以下概念有所了解&#xff1a;①过采样、②噪声成形、③数字滤波和抽取。 ①过采样 单音&#xff08;基频&#xff09;信号的功率与所有频率的噪声的RMS功率之和的比值就是信号噪声比&#xff08;SNR&#xff09;。对于一个N位…

63个国家7712个设计项目参赛,第11届艾特奖引发全球关注

第11届艾特奖全球作品征集已于2021年2月11日24时截止。本届艾特奖共收到来自全球63个国家的参赛设计作品7712件&#xff0c;参赛国家、参赛作品数量均突破以往。 第11届艾特奖参赛项目统计 国际空间设计大奖—艾特奖&#xff08;英文简称IDEA-TOPS&#xff09;是当今中国最具国…

万维网服务器

一、域名解析gethostbyname函数 struct hostent {char *h_name; /* 官方域名 */char **h_aliases; /* 别名*/int h_addrtype; /* 地址族&#xff08;地址类型&#xff09; */int h_length; /* 地址长度 */char **h_addr_list; …

深入聊一下机械硬盘的相关内容

本文是《数据存储通识课》合集的一部分,本合集希望通过一系列文章科普数据存储相关技术内容。同时,本系列文章不仅仅是科普,还会进行有深度解析,理论结合实现,从代码实现层面进行剖析​ 介绍存储技术当然要从存储技术最基本的组件磁盘开始介绍了。目前市面上我们见得最多的…

一种新型智能优化算法—鼠群优化(RSO)算法

目录 一、RSO理论基础 二、RSO数学模型 2.1 追逐猎物 2.2 攻击猎物 三、RSO流程图 四、运行结果 鼠群优化(Rat Swarm Optimizer&#xff0c;RSO)算法是由Dhiman G等人于2020年提出&#xff0c;主要启发于老鼠追逐和攻击猎物的种群行为。该优化算法具有结构简单&#xf…