PyTorch 神经网络基础(模型构建,参数构造...)
PyTorch 神经网络基础模型构造层和块MLP 的本质显示定义自定义块需要实现的功能1将输入数据作为其前向传播函数的参数。2通过前向传播函数来生成输出。请注意输出的形状可能与输入的形状不同。3计算其输出关于输入的梯度可通过其反向传播函数进行访问。通常这是自动发生的。4存储和访问前向传播计算所需的参数。5根据需要初始化模型参数。*nn.Module是 PyTorch 提供的神经网络乐高积木基座。所有层Linear、Conv2d、ReLU、所有模型MLP、ResNet、BERT、GPT都继承自它。顺序快*nn.Sequential是一个特殊的 nn.Module它把多个层按顺序串起来数据从第一个层流到最后一个层中间不做任何分支或跳转。为了构建我们自己的简化的MySequential 我们只需要定义两个关键函数1一种将块逐个追加到列表中的函数2一种前向传播函数用于将输入按追加块的顺序传递给块组成的“链条”。_modules是 PyTorch 的子模块登记簿 只有把模块放进这里PyTorch 才知道这是我的孩子才会帮你管理参数、搬 GPU、保存模型。用 OrderedDict 是为了严格保证执行顺序。nn.Sequential 的本质就是按顺序遍历 _modules逐个执行。自定义nn.Module的真正威力在 forward 中执行任意 Python 代码这是 nn.Sequential 完全做不到的。1.设置常数参数2.复用同一层3.Py的控制流PyTorch 模块的嵌套组合*只要输入输出维度匹配任意组合都可以。在.init里面中.net和,linear是并列关系输入X先进行.net再进行.linear参数管理我们的目标是找到使损失函数最小化的模型参数值参数访问weight是权重bias是偏移根据构建相对应的索引访问目标参数指定访问*在上面这个网络中由于我们还没有调用反向传播所以参数的梯度处于初始状态。访问第一个层访问所有层补充的访问方式可以通过print大概了解网络层的模块结构假如说设置一个网络模型Block2里嵌套了四个Block1能够看到分层的结构*因为层是分层嵌套的所以我们也可以像通过嵌套列表索引一样访问它们。 下面我们访问第一个主要的块中、第二个子块的第一层的偏置项参数初始化net.apply(init_normal)作用递归遍历模型中的每个子模块将函数 init_normal 应用到每个模块上。1统一初始化所有Linear层2对某些块应用不同的初始化方法3自定义初始化的实现还有额外的打印信息4直接设置参数顾名思义5共享层共享参数本质就是使用同一个层自定义层一个不带参数的层将该层组合到更复杂的模型中带参数的层需要两个额外的参数in_unitsunits输入和输出维度forward就是计算输入经过加权和偏置的输出*用nn.Parameter包装张量PyTorch 才会把它当参数依旧可以构建模型读写文件1存单个张量在当前目录并读取saveload2存储一个张量列表3存放字典4加载和保存模型参数以一个简单的MLP模型为例将模型的参数存储在一个叫做“mlp.params”的文件中state_dict()返回的是类似于下面的映射还原模型1.克隆原MLP的结构这里的参数都是随机初始化的不能用2.读取文件参数字典填充到相应的位置3.使用eval为什么使用模型需要eval()训练模型需要 train()?根据目的我们的需求不同

相关新闻

Low-Rank Few-Shot Adaptation of Vision-Language Models论文阅读

Low-Rank Few-Shot Adaptation of Vision-Language Models论文阅读

视觉语言模型的低秩少样本自适应code: https://github.com/MaxZanella/CLIP-LoRA摘要背景:视觉语言模型的少样本自适应提升了模型的泛化能力,少量标注样本即可在下游任务适配。现有问题:现有研究集中在 提示学习,Adapter方向, 忽…

2026/7/24 18:52:18阅读更多 →
魔兽争霸III终极优化指南:用WarcraftHelper插件让经典游戏在现代电脑重生

魔兽争霸III终极优化指南:用WarcraftHelper插件让经典游戏在现代电脑重生

魔兽争霸III终极优化指南:用WarcraftHelper插件让经典游戏在现代电脑重生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典魔兽争…

2026/7/24 18:52:18阅读更多 →
终极AMD Ryzen调试神器:免费开源SMUDebugTool完全使用指南

终极AMD Ryzen调试神器:免费开源SMUDebugTool完全使用指南

终极AMD Ryzen调试神器:免费开源SMUDebugTool完全使用指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:…

2026/7/24 18:52:18阅读更多 →
南非10米分辨率大豆种植动态地图揭秘

南非10米分辨率大豆种植动态地图揭秘

南非10米分辨率大豆种植区动态地图(2018-2025)——深度解读 当卫星“慧眼”遇上非洲大豆:从零星种植到出口新贵,每一块农田都被清晰记录。 前言:非洲大豆的“逆袭”之路 提到大豆,你首先想到的可能是巴西广…

2026/7/24 20:18:35阅读更多 →
[linux]第一天:shell脚本语言:变量、测试、控制语句以及函数的全面详解

[linux]第一天:shell脚本语言:变量、测试、控制语句以及函数的全面详解

目录 一、shell的概述 1、shell本质是脚本文件:完成批处理。 2、shell 是软件也是语言。 3、系统默认调用的两个脚本文件 ​3、写脚本的步骤 二、shell的自定义变量 1、定义变量 2、引用变量 3、清除变量 4、只读变量 4、shell的变量 获取键盘输入read 三、环境变量…

2026/7/24 20:18:35阅读更多 →
【linux】第二天 linux系统调用及文件IO操作

【linux】第二天 linux系统调用及文件IO操作

目录 一、系统调用 1、概述 2、系统调用和库函数区别 3、系统调用及IO操作 二、文件描述符 1、概述 2、文件描述符表对文件描述符的管理 3、查看当前系统文件描述符最大数量ulimit -a 三、文件IO的操作 1、打开文件 open 2、close 关闭文件描述符 3、向文件写数据…

2026/7/24 20:18:35阅读更多 →
Cesium 实战 11 - 调整饱和度、对比度等参数,加载渲染美化影像底图

Cesium 实战 11 - 调整饱和度、对比度等参数,加载渲染美化影像底图

Cesium 实战 11 - 调整饱和度、对比度等参数,加载渲染美化影像底图 渲染美化影像底图核心代码 完整代码: 在线示例 2026年7月17日更新:搞了一个 Cesium 中文 API 镜像,这是相关介绍(Cesium-1.143 中文版 API),欢迎使用。 美化影像底图,其实就是相当于调整了图层亮度,…

2026/7/24 20:18:35阅读更多 →
【pgSql 海量数据库操作记录】

【pgSql 海量数据库操作记录】

一、批量插入数据【测试用】1.1、sql 语法sql 模板DO $$ DECLAREi integer : 1; BEGINWHILE i < 10 LOOPINSERT INTO my_table (col1, col2, col3) VALUES (value1, value2, i);i : i 1;END LOOP; END $$;案例测试 sqlDO $$ DECLAREi integer : 1; BEGINWHILE i < 100 L…

2026/7/24 20:18:35阅读更多 →
subprocess.check_output函数介绍

subprocess.check_output函数介绍

前言 在 Python 中&#xff0c;subprocess 是一个非常强大的内置标准库。它的主要作用是在 Python 代码中执行外部的命令和程序&#xff08;就像你在终端或命令行里敲命令一样&#xff09;。 subprocess.check_output 是subprocess 模块中一个非常实用的便捷函数。它的核心作用…

2026/7/24 20:16:34阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中&#xff0c;我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源&#xff0c;还是配置文件、证书等&#xff0c;都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下&#xff0c;但这…

2026/7/24 0:58:53阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP&#xff08;轻量级目录访问协议&#xff09;作为企业级身份认证的黄金标准&#xff0c;已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时&#xff0c;发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 0:58:53阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”&#xff0c;而是以可解释、可审计、可迭代的方式&#xff0c;赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 0:58:53阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好&#xff0c;我是一名编程初学者&#xff0c;同时这也是我编程学习之路上的第一篇博客。在这里&#xff0c;我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手&#xff0c;目前在学习c语言&#xff0c;我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:06阅读更多 →
【LeetCode 54】螺旋矩阵

【LeetCode 54】螺旋矩阵

问题描述&#xff1a; 解法&#xff1a; 1、模拟&#xff08;参考自【LeetCode 54】螺旋矩阵-CSDN博客&#xff09; int *spiralOrder(int **matrix, int matrixSize, int *matrixColSize, int *returnSize) {static const int dirs[4][2] {{0, 1}, {1, 0}, {0, -1}, {-1, …

2026/7/24 0:00:06阅读更多 →
2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

知春路不相信模型领先今年WAIC大会&#xff0c;昔日AI六小龙来了五家&#xff0c;分别是Kimi、阶跃星辰、Minimax、百川智能、零一万物。连放弃基模的百川和零一万物都来了&#xff0c;唯一缺席的竟是近几个月来风光无限的智谱。&#xff08;DeepSeek一直不参加&#xff09;WAI…

2026/7/24 0:00:06阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时&#xff0c;发现推理速度只有可怜的 1-2 FPS&#xff0c;而别人的演示视频却能跑到 30 FPS 以上&#xff0c;那么问题很可能不在模型本身&#xff0c;而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后&#xff0c;会直接使用官方示例…

2026/7/23 22:58:43阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一&#xff1a;为什么你需要了解 Coze 和 Dify&#xff1f;如果你对 AI 应用开发感兴趣&#xff0c;但一看到“大模型”、“智能体”、“工作流”这些词就头疼&#xff0c;觉得门槛太高&#xff0c;那这篇文章就是为你准备的。很多开发者&#xff0c;包括我自己&#…

2026/7/24 19:00:40阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会&#xff1a;配图一直是个让人头疼的问题。2026年&#xff0c;AI生图工具已经非常成熟了&#xff0c;但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1&#xff1a;速度之王2026年6月11日&#xff0c…

2026/7/24 19:00:40阅读更多 →