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的封装,简化开发工作。

使用参考:

链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值