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自动实现,无需手动编写梯度计算代码
相关推荐
风象南7 小时前
我把大脑开源给了AI
人工智能·后端
Johny_Zhao9 小时前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
飞哥数智坊9 小时前
我帮你读《一人公司(OPC)发展研究》
人工智能
冬奇Lab12 小时前
OpenClaw 源码精读(3):Agent 执行引擎——AI 如何「思考」并与真实世界交互?
人工智能·aigc
没事勤琢磨14 小时前
如何让 OpenClaw 控制使用浏览器:让 AI 像真人一样操控你的浏览器
人工智能
用户51914958484514 小时前
CrushFTP 认证绕过漏洞利用工具 (CVE-2024-4040)
人工智能·aigc
牛马摆渡人52815 小时前
OpenClaw实战--Day1: 本地化
人工智能
前端小豆15 小时前
玩转 OpenClaw:打造你的私有 AI 助手网关
人工智能
BugShare15 小时前
写一个你自己的Agent Skills
人工智能·程序员
机器之心15 小时前
英伟达护城河被AI攻破,字节清华CUDA Agent,让人人能搓CUDA内核
人工智能·openai