当前位置: 首页 > news >正文

PyTorch模型 train() 和 eval() 模式详解

在 PyTorch 中,train() 和 eval() 是模型两种关键的工作模式,正确使用它们对模型训练和推理至关重要。

一、两种模式的核心区别

模式 影响模块 主要用途 Dropout BatchNorm 梯度计算
train() 所有训练相关层 模型训练 激活 使用batch统计 保留梯度
eval() 所有训练相关层 模型验证/测试 关闭 使用运行统计 关闭梯度计算

二、典型使用场景

1. 训练阶段

model.train()  # 设置为训练模式

for data, target in train_loader:
    optimizer.zero_grad()
    output = model(data)
    loss = criterion(output, target)
    loss.backward()
    optimizer.step()

2. 验证/测试阶段 

model.eval()  # 设置为评估模式

with torch.no_grad():  # 关闭梯度计算
    for data, target in val_loader:
        output = model(data)
        loss = criterion(output, target
http://www.dtcms.com/a/111649.html

相关文章:

  • Python 入门指南:从基础语法到应用场景
  • React-02初学hello_react(JSX,创建React根节点,引入对应React库,render渲染DOM)
  • MIT6.828 Lab3-3 Detect which pages have been accessed (hard)
  • MCP有哪些比较好的资源?
  • 数据一键导出为 Excel 文件
  • 每日一个小病毒(C++)EnumChildWindows+shellcode
  • 添加购物车功能
  • LeetCode热题100记录-【链表】
  • Linux内核物理内存组织结构
  • 【GPT入门】第33课 从应用场景出发,区分 TavilyAnswer 和 TavilySearchResults,代码实战
  • [每周一更]-(第138期):MySQL 子查询详解:原理、应用及优化方案
  • 爬虫工程师的社会现状
  • ISIS多区域配置
  • 基于CATIA参数化块体建模的自动化插件开发实践——NX建模之块命令的参考与移植
  • 4.3-2 jenkins
  • Cortex-M​ 中断的压栈与出栈操作
  • 【51单片机】2-3【I/O口】震动传感器控制LED灯
  • 【记录】kali制作绕过火绒检测的木马(仅通过MSF的方式)
  • shared_ptr和weak_ptr原理
  • TortoiseGit多账号切换配置
  • Ubuntu服务器 无法正常启动redis
  • cmake(12):在 CMake 的 CMakeLists.txt 中也可以进行流程控制,也就是说可以像写 shell 脚本那样进行条件判断和循环。
  • ubantu22.04中搭建地图开发环境(qt5.15.2 + osg3.7.0 + osgearth3.7.1 + osgqt)
  • 自然科学基金项目答辩ppt设计制作美化案例模板下载
  • 机器学习学习笔记
  • Promise 详细说明、常用方法
  • 【备考高项】模拟预测题(一)综合知识及答案详解
  • C++_模板初阶
  • transform
  • VirtualBox安装FnOS