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自动实现,无需手动编写梯度计算代码
相关推荐
墨染天姬34 分钟前
【AI】数学基础之矩阵
人工智能·线性代数·矩阵
2401_841495642 小时前
【计算机视觉】基于复杂环境下的车牌识别
人工智能·python·算法·计算机视觉·去噪·车牌识别·字符识别
zhangjipinggom2 小时前
multi-head attention 多头注意力实现细节
深度学习
倔强青铜三3 小时前
苦练Python第66天:文件操作终极武器!shutil模块完全指南
人工智能·python·面试
倔强青铜三3 小时前
苦练Python第65天:CPU密集型任务救星!多进程multiprocessing模块实战解析,攻破GIL限制!
人工智能·python·面试
强哥之神3 小时前
浅谈目前主流的LLM软件技术栈:Kubernetes + Ray + PyTorch + vLLM 的协同架构
人工智能·语言模型·自然语言处理·transformer·openai·ray
zskj_qcxjqr3 小时前
七彩喜艾灸机器人:当千年中医智慧遇上现代科技
大数据·人工智能·科技·机器人
Zack_Liu4 小时前
深度学习基础模块
人工智能·深度学习
zy_destiny4 小时前
【工业场景】用YOLOv8实现抽烟识别
人工智能·python·算法·yolo·机器学习·计算机视觉·目标跟踪
狠活科技4 小时前
免登录!免安装ClI,Claude Code官方插件接入API使用教程
人工智能·vscode·ai编程