pytorch

预览

神经网络工具箱有四部分构成:神经网络核心组件、构建神经网络的主要工具、构建模型、训练模型。

神经网络核心组件

**层(Layer):**神经网络的基本结构单元,通过权重等参数对输入张量进行数据变换(如卷积、线性运算),输出新张量

**模型(Model):**由多个 "层" 按特定逻辑组合而成的整体网络,实现从输入数据到输出结果的完整映射过程

**损失函数:**量化模型预测值(Y')与真实标签(Y)之间差异的目标函数,是参数学习的 "指南针"

优化器: 根据损失函数计算的梯度,采用优化算法(如 SGD、Adam)更新模型参数,最小化损失值(梯度下降法:找损失函数取最小值时的参数)

损失函数:预测值与真实值之间的差距---通过优化器(梯度下降法)计算权重与偏置【权重与偏置是参数】找到最小值

构建神经网络的主要工具

工具类型 特性 适用场景
nn.Module 面向对象编程,需继承使用;自动管理可学习参数(weight/bias);支持模型容器嵌套 卷积层(Conv2d)、全连接层(Linear)、Dropout 层等带可学习参数的组件
nn.functional 纯函数式调用,无需实例化;需手动定义和传入参数;无状态管理功能 激活函数(ReLU)、池化层(max_pool2d)、损失计算(cross_entropy)等无参数 / 参数固定的操作

linear指全连接层(卷积神经网络中)

Cohv*指卷积层

*norn指标准化

*Aactive指激活函数

*Loss指损失函数

关键差异总结

  1. 使用方式
    • nn.Xxx:先实例化(如model = nn.Linear(784, 300)),再调用实例处理数据
    • nn.functional.xxx:直接调用函数(如F.linear(x, weight, bias)),需手动传入参数
  2. 参数管理
    • nn.Xxx:自动封装和管理参数,可通过model.parameters()提取所有可学习参数
    • nn.functional.xxx:需手动定义weightbias,无法自动纳入模型参数管理
  3. 状态切换
    • nn.Dropout:调用model.eval()后自动关闭 Dropout(适配测试阶段)
    • F.dropout:需手动设置training参数(如F.dropout(x, training=True))切换状态

核心功能与工作原理

  1. 参数自动管理
    • 继承nn.Module后,在__init__中定义的nn.Xxx层(如 Linear、Conv2d),其参数会被自动注册到模型的参数列表中
    • 可通过model.named_parameters()查看参数名称及数值,便于调试和优化
  2. 正向传播定义
    • 必须重写forward()方法,定义数据在模型中的流动逻辑(从输入到输出的计算过程)
    • 反向传播由 PyTorch 的autograd自动实现,无需手动编写梯度计算代码
相关推荐
用户51914958484516 小时前
HP Sound Research SECOMNService 权限提升漏洞利用工具
人工智能·aigc
用户0183493016916 小时前
给 AI 智能体能力包一层 BFF,前端只调一个接口
人工智能
这token有力气19 小时前
Function Calling 格式漂移
人工智能
onething36519 小时前
Spring Boot + Spring AI 从入门到实战:7天转型计划 Day 5 —— SSE 流式输出 + 打字机效果
人工智能·后端·全栈
onething36520 小时前
Spring Boot + Spring AI 从入门到实战:7天转型计划 Day 6 —— 业务完善 + 会话消息预览
人工智能·后端·全栈
IT_陈寒20 小时前
SpringBoot自动配置的坑,我爬了三天才出来
前端·人工智能·后端
甲维斯1 天前
笑抽了!DeepSeek识图,豆包完胜了!
人工智能·deepseek
Lei活在当下1 天前
【AI手记系列-2026/6/18】iSparto & Harness,Caveman 以及AI时代的生存指南
人工智能·llm·openai
冬奇Lab1 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
冬奇Lab1 天前
Agent 系列(22):Context Engineering 深度——三种上下文管理策略的量化对比
人工智能·agent