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

torch使用心得

基本概念

训练周期

训练周期(epoch)下有多个训练步骤(step)。

训练集/验证集/测试集

训练集(Training Set): 使用于模型训练的数据。模型通过学习训练集中的特征和模式来更新其参数。

验证集(Validation Set): 用于调整模型超参数和评估模型性能的数据。通常在每个训练周期(epoch)结束后使用验证集来检查模型的表现,帮助我们防止过拟合。

测试集(Test Set): 用于评估模型最终性能的数据。测试集是完全独立于训练过程的,只有在模型训练完成后才能用于评估。

ModelCheckpoint

ModelCheckpoint是Pytorch中的一个Callback,它就是用于模型缓存的。

它会监视某个指标,每次指标达到最好的时候,它就缓存当前模型。

在每个epoch结束作为回调函数,保存模型。

torch张量

创建torch张量

# 从numpy array创建
tensor = torch.from_numpy(numpy.array([[-1.5029, 2.2071]]))

# 直接从list创建,优先用这种
torch.tensor([2, 3.3])

访问下标

t = torch.tensor([1,2])
# t[0]依然是张量,要取得数字,用item方法
print(t[0].item())

argmax

返回数组沿轴axis最大值的索引。

import numpy

# axis=1表示按行,axis=0表示按列
# 结果[1, 0]
print(numpy.argmax([[2,3,1], [4,2,1]], axis=1))

# 如果无axis参数,表示整个数组平铺(flatten)后的索引位置
# 结果为3
print(numpy.argmax([[2,3,1], [4,2,1]]))

argmax一般用于分类结果的输出。分类结果的数组包含了每个类别的概率值,其索引则对应各自的label,取最大概率值的索引,就相当于得到了最有可能的类别。

torch.argmax的用法跟numpy.argmax很类似,就是参数略有不同,torch.argmax维度参数是dim。

training_step

在自动优化中,training_step必须返回一个tensor或者dict或者None(跳过),对于简单的使用,在training_step可以return一个tensor作为Loss回传,也可以return一个字典,其中必须包括key “loss”,字典中的"loss"会提取出来作为Loss回传,具体过程主要包含在lightning\pytorch\loop\sautomatic.py中的_ AutomaticOptimization()类。

multi-class和multi-label

multi-class:多分类任务,即每个样本只属于一个类别。例如,将图像分类为人或汽车等

multi-label:多标签分类任务,即每个样本可以属于多个类别。例如,一张图像可以同时包含猫和狗,因此可以同时被标记为“猫”和“狗”

torch/sklearn度量指标

参考:

链接

所谓的macro和micro,以F1举例来说,前者是每个类别F1的平均值,后者则是micro Precision与micro Recall的综合评价。

torch lightning

torch的封装,简化开发工作。

使用参考:

链接


http://www.kler.cn/a/552375.html

相关文章:

  • pyqt 调用颜色选择器
  • 蚁剑(AutSword)的下载安装与报错解决
  • 【git】通过 rebase 合并分支
  • Python高级语法之urllib
  • MAVSDK - Custom Mavlink处理
  • 【笔记】linux离线部署Ollama+Deepseek r1+open webui
  • 本地 Ollama 部署 Deepseek R1 并使用 Spring AI Alibaba 构建 Chat 应用示例
  • STM32 HAL库 UART串口发送数据实验
  • 华为交换机trunk简介配置
  • POI优化Excel录入
  • Node.js 中 morgan 依赖详解
  • 使用iOS个人声音与SoVITS训练个人AI语音(10分钟快速上手)
  • Linux上部署Java项目-通过sh脚本启动
  • Day01 【苍穹外卖】环境搭建与前后端联调
  • MySQL 面试系列:MySQL 事务的面试题总结
  • 芯麦GC1808立体声ADC芯片解析:高性价比与全集成音频采集方案
  • 【Java】分布式锁Redis和Redisson
  • PHP Web 开发基础
  • [数据结构]红黑树,详细图解插入
  • AI时代的前端开发:机遇与挑战并存