文章目录
深度学习中的TTA(Test Time Augmentation)–测试时数据增强技术
定义:TTA(Test Time Augmentation):测试时数据增强
方法:测试时将原始数据做不同形式的增强,然后取结果的平均值作为最终结果
作用:可以进一步提升最终结果的精度
原因:如果只对图像做一种增强时,采用的变换可能会使图像关键信息(即特征)丢失,
比如在对图像做剪切变换时,可能会把关键特征丢掉.
而采用TTA(测试时增强),可以对一幅图像做多种变换,创造出多个不同版本,包括不同区域裁剪和更改缩放程度等,然后对多个版本数据进行计算最后得到平均输出作为最终结果,提高了结果的稳定性和精准度.
Pytorch中模型的保存和加载
在Pytorch中模型的保存和加载非常简单,比较常见的做法是保存和加载模型参数:
torch.save(model_object.state_dict(), ‘model.pt’)
model.load_state_dict(torch.load(’ model.pt’))
模型训练与验证
训练集(Train Set):模型用于训练和调整模型参数;
验证集(Validation Set):用来验证模型精度和调整模型超参数;
测试集(Test Set):验证模型的泛化能力。
验证集划分:
留出法(Hold-Out)
直接将训练集划分成两部分,新的训练集和验证集。这种划分方式的优点是最为直接简单;缺点是只得到了一份验证集,有可能导致模型在验证集上过拟合。留出法应用场景是数据量比较大的情况。
交叉验证法(Cross Validation,CV)
将训练集划分成K份,将其中的K-1份作为训练集,剩余的1份作为验证集,循环K训练。这种划分方式是所有的训练集都是验证集,最终模型验证精度是K份平均得到。这种方式的优点是验证集精度比较可靠,训练K次可以得到K个有多样性差异的模型;CV验证的缺点是需要训练K次,不适合数据量很大的情况。
自助采样法(BootStrap)
通过有放回的采样方式得到新的训练集和验证集,每次的训练集和验证集都是有区别的。这种划分方式一般适用于数据量较小的情况。