P15.神经网路的基本骨架——nn.Module的使用

news/2025/11/4 20:42:41/文章来源:https://www.cnblogs.com/Samar-blog/p/19191367

P15.神经网路的基本骨架——nn.Module的使用

打开PyTorch官网

1.找到troch.nn的Containers

imageimage

2.打开pycharm:代码-生成-重写方法-选择第一个要初始化的方法__init__

imageimageimage

image

3.pycharm运行代码如下

点击查看代码
import torch
from torch import nn#1.定义神经网络的模板
class Dyl(nn.Module):   #定义一个名为Dyl的神经网络类,继承自nn.Module#-> None:类型注解,表示该方法不返回值;  super().__init__():调用父类nn.Module的初始化方法def __init__(self) -> None:super().__init__()def forward(self,input):output = input + 1return output
#2.创建神经网络
dyl = Dyl()   #创建Dyl类的一个实例(对象),dyl现在是一个可用的神经网络
x = torch.tensor(1.0) #x作为输入
output = dyl(x)       #将x放在神经网络里面即dyl(x)作为输出
print(output)

4.输出结果

点击查看代码
D:\anaconda3\envs\pytorch\python.exe D:/DeepLearning/Learn_torch/P15_nnModule.py
tensor(2.)进程已结束,退出代码0

5.debug一下:在“dyl = Dyl()”处设置断点

(1)【deepseek总结】完整的执行流程总结:
  1. 创建Dyl实例 → 自动调用__init__ → 调用父类初始化
  2. 创建输入张量 x = 1.0
  3. 调用dyl(x) → 触发__call__方法 → 调用forward方法
  4. 在forward中执行计算:1.0 + 1 = 2.0
  5. 返回计算结果
  6. 打印输出结果
(2)第一步:super().init()

原因:当创建 Dyl 类的实例时,Python会自动调用 init 方法
具体内容
super() 获取父类 nn.Module 的引用
.init() 调用父类的构造函数
作用:初始化神经网络的基础设施,包括参数管理、钩子函数、设备设置等
必要性:所有继承 nn.Module 的类都必须调用父类构造函数
image

(3)第二步:x = torch.tensor(1.0)

原因:需要为神经网络创建输入数据
具体内容
torch.tensor(1.0) 创建一个值为1.0的PyTorch张量
数据类型:自动推断为 torch.float32
作用:作为神经网络的输入,模拟实际应用中的数据

image

(4)第三步:output = dyl(x)

原因:调用神经网络进行前向传播计算
具体内容
dyl(x) 实际上调用的是 dyl.call(x)
PyTorch的 nn.Module 重写了 call 方法
内部过程
设置网络为适当模式(训练/评估)
调用钩子函数(如果有)
最终调用 forward 方法

image

image

(5)第四步:output = input + 1(在forward方法内)

原因:执行神经网络的实际计算逻辑
具体内容
input 是从上一步传入的 x(值为1.0的张量)
input + 1 执行张量加法运算
计算过程:1.0 + 1 = 2.0
注意:这里使用的是PyTorch张量运算,不是普通的Python加法

image

(6)第五步:return output

原因:将计算结果返回给调用者
具体内容
返回值为 2.0 的PyTorch张量
这个返回值被赋值给变量 output

(7)第六步:print(output)

原因:显示神经网络的输出结果
具体内容
打印 output 变量,即 tensor(2.)
显示格式:PyTorch为了简洁,将 2.0 显示为 2.

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

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

相关文章

AGC052做题记录

A 其实是简单题,但我是唐诗。 \(2n\) 很简单,前 \(n\) 个和后 \(n\) 个全选 \(0/1\) 即可。可以感觉到正解只需要在这基础上改进,但是胡思乱想了很多没有任何进展。最后意识到最后凑个 \(0\) 即可。 B 做完 T1 ,就…

软工团队第一次作业

作业所属课程 软件工程作业要求 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13573作业目标 根据真实的需求调研结果,确定具有创新性与实用价值的软件开发项目选题,确保能将智能体合理地…

Windows11-GPT

Windows11-GPT导航 (返回顶部)1. 基于UEFI/GPT的硬盘分区 2. 分区要求2.1 启动分区(ESP) 2.2 微软保留分区(MSR) 2.3 Windows分区(OS) 2.4 恢复工具分区(WinRE) 2.5 数据分区(Other)3. 默认分区布局表 4. 其他实用分区…

1. markdown转word 第一步: markdown转html

1. 简介 最近因为项目需求需要将AI输出的结果导出到word中, 但AI输出的格式为markdown格式,因为word展示内容的时候需要有相应的格式(标题, 段落, 列表, 表格等), 所以不能直接将markdown输出到word中, 否则word中展示…

P14.Dataloader的使用

P14.Dataloader的使用14.1Pytorch官网打开torch.utils.data.DataLoader14.2在pycharm使用DataLoader它返回img和target代码如下:点击查看代码 import torchvision from torch.utils.data import DataLoader #from tor…

docker换源

创建/编辑 /etc/docker/daemon.json {"registry-mirrors": ["https://docker.1ms.run","https://docker-0.unsee.tech","https://docker.m.daocloud.io"],"live-restore…

pypinyin很好用

pypinyin很好用〔https://gitee.com/mirrors/python-pinyin#id4〕 〔https://github.com/mozillazg/pypinyin-dict〕 pip install就噌噌地装上了。 到灵格斯词典网站下载了成语、文化等词典,过几天出个1~2万词的用户…

小九源码-springboot078-java物业管理架构

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

VS 2017 项目文件不完整,缺少预期导入

VS 2017 项目文件不完整,缺少预期导入输入: dotnet --info缺少 .NET Core 2.0 运行时支持。安装:dotnet-runtime-2.0.0-win-x64.exe本文来自博客园,作者:VipSoft 转载请注明原文链接:https://www.cnblogs.com/v…

人性的弱点

抱怨、吵闹,和歇斯底里,所付出的代价。 那种喋喋不休的吵闹,是否对她有了某种帮助?还是把事情弄得更糟? 当你在深夜面对自己时,如果感受到的是充盈而非荒芜,那么这种生存方式就已通过生命的终极考核。

P13.torchvision中的数据集使用

P13.torchvision中的数据集使用13.1Transforms中的类 1.打开pytorch官网 2.找到CIFAR10,这个数据集比较小3.点击图片上红色的CIFAR104.这里的链接就是Pycharm下载到dataset里面的东西13.2CIFAR10数据集的下载与导入 1…

机器学习基础入门(第四篇):无监督学习与聚类途径

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

图上状压 DP

容易发现每年都在考这玩意。每年都不会。 AT_abc213_g [ABC213G] Connectivity 2 显然删边可以变成保留边。 定义状态函数 \(f_s\) 表示保留边,使得 \(s\) 中的点联通的方案数。那么对于 \(k=k0\) 来说,答案应该就是…

k8s删除Terminating状态的命名空间

k8s删除Terminating状态的命名空间原创于 2021-04-07 16:14:02 发布 CC 4.0 BY-SA版权 K8S/Kubernetes文章已被社区收录加入社区 K8S专栏收录该内容5 篇文章订阅专栏在部署Kubesphere时遇到命名空间kubesphere-system处…

【实用脚本】一键安装Oracle19c数据库

【实用脚本】一键安装Oracle19c数据库完整脚本: #!/bin/bash #Oracle 一键安装工具 log_file="/var/log/oracle_install_$(date +%Y%m%d_%H%M%S).log" # 屏幕输出只显示状态提示,日志文件记录完整详细信息…

程序员必逛的9个开发者社区推荐

程序员必逛的9个开发者社区推荐大家好,我是jobleap.cn的小九。 在技术飞速迭代的今天,开发者想要保持竞争力,离不开优质社区的滋养。无论是解决突发Bug、学习前沿技术,还是交流实战经验、寻找合作机会,合适的社区…

CleanMyMac X 4.14.2 dmg 安装教程|Mac 清理软件详细安装步骤

CleanMyMac X 4.14.2 dmg 安装教程|Mac 清理软件详细安装步骤​ CleanMyMac X​ 是一款专门为 ​Mac 电脑​ 设计的 ​系统清理和优化工具一、下载文件 CleanMyMac X 4.14.2.dmg​ 文件安装包下载: https://pan.quar…

java-迭代器

java-迭代器1.迭代器在遍历集合的时候是不依赖索引的 2.迭代器需掌握三个方法: Iteratorit=list.iterator(); while(it.hasNext()){ String str=it.next(); System.out.println(str); } 3.迭代器的四个细节: *如果当…

go语言访问新浪股票(hq.sinajs.cn)

config.go: package main// 股票代码配置 - 简化版本,只包含主要指数和热门股票 var stockSymbols = []string{// 主要指数"sh000001", // 上证指数"sh000016", // 上证50"sh000300", …

优化算法三剑客:SGD、Adam、AdamW的深度对比

优化算法三剑客:SGD、Adam、AdamW的深度对比 1. 引言:模型训练的"导航系统" 想象一下,你正在一个复杂的地形中寻找最低点(最小损失),四周浓雾弥漫(高维空间不可视)。优化算法就是你的GPS导航系统,它…