Test time augmentation(TTA)

Test time augmentation

数据扩充是模型训练期间通常使用的一种方法,它使用来自训练数据集的样本的修改副本来扩充训练集。
数据增强通常使用图像数据执行,其中使用一些执行的图像处理技术(如缩放、翻转、移位等)创建训练数据集中的图像副本。
人工扩展的训练数据集可以产生更熟练的模型,因为深度学习模型的性能通常会随着训练数据集的大小而不断扩展。此外,训练数据集中图像的修改或增强版本可以帮助模型以不改变其位置、光线等的方式提取和学习特征。
Test time augmentation(简称TTA)是对测试数据集进行数据扩展的应用程序。
具体来说,它涉及到在测试集中创建每个图像的多个增强副本,让模型为每个图像做出预测,然后返回这些预测的集合。
选择增强是为了让模型有最佳的机会正确地对给定的图像进行分类,而且模型必须对图像进行预测的副本的数量通常很少,比如少于10或20个。
通常,只执行一个简单的测试时间扩展,比如移位、裁剪或图像翻转。
我们还通过图像的水平翻转来增加测试集;对原始图像和翻转后的图像进行软最大类后验平均,得到图像的最终得分。

How to use

1.借助pytorch_toolbelt

from pytorch_toolbelt.inference import tta

# Truly functional TTA for image classification using horizontal flips:
logits = tta.fliplr_image2label(model, input)

# Truly functional TTA for image segmentation using D4 augmentation:
logits = tta.d4_image2mask(model, input)

# TTA using wrapper module:
tta_model = tta.TTAWrapper(model, tta.fivecrop_image2label, crop_size=512)
logits = tta_model(input)

2.自己动手

import torch

# 水平翻转
def flip_horizontal_tensor(batch):
    columns = batch.data.size()[-1]
    return batch.index_select(-1, torch.LongTensor(list(reversed(range(columns)))).cuda())

在这里插入图片描述

#   垂直翻转
def flip_vertical_tensor(batch):
    rows = batch.data.size()[-2]
    return batch.index_select(-2, torch.LongTensor(list(reversed(range(rows)))).cuda())

在这里插入图片描述

### 回答1: 测试时间增强(Test Time AugmentationTTA)是一种数据增强技术,它在测试阶段对每个测试样本进行多次预测,然后将这些预测结果进行平均或投票,以提高模型的准确性和鲁棒性。TTA可以通过对测试样本进行旋转、翻转、缩放等变换来生成多个版本的输入数据,从而增加模型的泛化能力。 ### 回答2: 测试时间数据增强(Test Time Augmentation,简称TTA)是一种用于增强神经网络测试精度的方法。它可以在评估单张图片时对输入进行多次随机变换,以产生多个扩充版本。然后将这些扩充版本的预测结果进行平均或投票,从而提高模型的鲁棒性和准确性。 TTA的核心思想是让模型在不同的变换下,学习到更多的特征,从而提高它的泛化性能。因此,这种方法在解决数据不足、数据噪声和模型过拟合等问题时非常有用。 TTA可以采用多种变换手段,如旋转、翻转、缩放、颜色偏移等,只要这些变换不会影响图像的本质特征。常见的TTA方式包括: 1.镜面反转:将图像沿着水平轴或垂直轴翻转; 2.旋转:对图像进行随机角度旋转; 3.缩放:对图像进行随机缩放; 4.移位:在图像内进行随机移位; 5.颜色变换:对图像进行随机的颜色变换等。 TTA可以在各种计算机视觉任务中应用,如图像分类、目标检测和语义分割等。不同的任务可能需要不同的TTA实现方式,但是,通常在评估模型时,使用TTA能够很好地提高模型的精度,并且只需要较少的计算成本。 总之,TTA是一种非常有效的增强机器学习模型测试精度的方法,它可以帮助我们提高模型的鲁棒性和泛化能力,对于解决数据不足、数据噪声和模型过拟合等问题有很大的帮助。 ### 回答3: Test time augmentationTTA)是一种在测试期间增加图像数量和变化的方法,来提高卷积神经网络的性能。在传统的深度学习模型训练中,通常会为每个图像增加一些变形、旋转、缩放等扰动,以增加数据的数量和训练模型的鲁棒性。然而,在测试阶段,通常只会使用原始图像进行预测,这会限制模型的性能。 TTA的基本思想是,在测试时对一个图像进行多次扰动,并对每次扰动后的图像进行预测。最终的预测结果可以通过平均或者取最大值等方法得到。这种方法类似于模型集成,但它更加高效和方便,因为它不需要训练多个模型。 TTA的优势是可以减少过拟合,提高模型的泛化能力。这是因为在测试阶段,我们通常没有大量的数据来验证模型的泛化能力,而TTA可以通过增加图像数量和变化的方式来模拟更多的情况,从而更好地测试模型的泛化能力。 此外,TTA还可以提高模型的准确性和稳定性。因为图像扰动可以增加训练集的多样性,从而减少模型的偏差,而模型的预测结果也更加鲁棒。在一些难分辨的情况下,TTA还可以提供更多的信息,帮助模型做出更准确的预测。 综上所述,TTA是一种简单而有效的方法,可以提高卷积神经网络的性能和泛化能力,进而在图像分类、目标检测、语义分割等任务中发挥重要作用。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点PY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值