测试数据增强_预测模型最佳cutoff值

测试数据增强_预测模型最佳cutoff值cutout是2017年提出的一种数据增强方法,想法比较简单,即在训练时随机裁剪掉图像的一部分,也可以看作是一种类似dropout的正则化方法。ImprovedRegularizationofConvolutionalNeuralNetworkswithCutoutpaper:https://arxiv.org/pdf/1708.04552.pdfcode:https://github.com/uoguelph-mlrg/Cutoutcutout采用的操作是随机裁剪掉图像中..

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

cutout是2017年提出的一种数据增强方法,想法比较简单,即在训练时随机裁剪掉图像的一部分,也可以看作是一种类似dropout的正则化方法。

Improved Regularization of Convolutional Neural Networks with Cutout

paper: https://arxiv.org/pdf/1708.04552.pdf

code: https://github.com/uoguelph-mlrg/Cutout


cutout采用的操作是随机裁剪掉图像中的一块正方形区域,并在原图中补0。由于作者在cutout早期版本中使用了不规则大小区域的方式,但是对比发现,固定大小区域能达到同等的效果,因此就没必要这么麻烦去生成不规则区域了。

实现代码比较简单,cutout.py,如下:

import torch
import numpy as np


class Cutout(object):
    """Randomly mask out one or more patches from an image.

    Args:
        n_holes (int): Number of patches to cut out of each image.
        length (int): The length (in pixels) of each square patch.
    """
    def __init__(self, n_holes=1, length=16):
        self.n_holes = n_holes
        self.length = length

    def __call__(self, img):
        """
        Args:
            img (Tensor): Tensor image of size (C, H, W).
        Returns:
            Tensor: Image with n_holes of dimension length x length cut out of it.
        """
        h = img.size(1)
        w = img.size(2)

        mask = np.ones((h, w), np.float32)

        for n in range(self.n_holes):
            y = np.random.randint(h)
            x = np.random.randint(w)

            y1 = np.clip(y - self.length // 2, 0, h)
            y2 = np.clip(y + self.length // 2, 0, h)
            x1 = np.clip(x - self.length // 2, 0, w)
            x2 = np.clip(x + self.length // 2, 0, w)

            mask[y1: y2, x1: x2] = 0.

        mask = torch.from_numpy(mask)
        mask = mask.expand_as(img)
        img = img * mask

        return img

上面代码中有两个参数,具体如下:

n_holes:表示裁剪掉的图像块的数目,默认都是设置为1;

length:每个正方形块的边长,作者经过多轮尝试后,不同数据集最优设置不同,CIFAR10为16,CIFAR100为8,SVHN为20;# 这里觉得挺麻烦的,cutout调参很重要

看看在图像上cutout是什么效果,代码如下:

import cv2
from torchvision import transforms
from cutout import Cutout

# 执行cutout
img = cv2.imread('cat.png')
img = transforms.ToTensor()(img)
cut = Cutout(length=100)
img = cut(img)

# cutout图像写入本地
img = img.mul(255).byte()
img = img.numpy().transpose((1, 2, 0))
cv2.imwrite('cutout.png', img)

由于原图比较大,这里把正方形边长调到了100,效果如下:

测试数据增强_预测模型最佳cutoff值


实际训练看看效果到底怎么样,为了保证公平,训练时参数统一,且每种模型训练了8次以减少随机性,结果见下表。

Method CIFAR-10 CIFAR-100
ResNet-50 96.76/96.82/96.81/96.79
96.72/96.69/96.60/96.82
(96.75)
83.80/83.66/84.19/83.26
83.89/83.90/83.57/83.69
(83.74)
ResNet-50+cutout 96.73/96.58/96.78/96.65
96.65/96.58/96.77/96.65
(96.67)
83.63/83.78/83.80/83.49
83.92/83.57/83.71/83.60
(83.69)

从实验结果来看,在CIFAR10和CIFAR100这两个数据集上使用cutout,训练出来的模型精度都会掉一点。看来cutout涨点并没有那么容易,和调参、模型深度、数据集都有很大的关系。


数据增强实测之Random Erasing_一个菜鸟的奋斗-CSDN博客

数据增强实测之mixup_一个菜鸟的奋斗-CSDN博客

数据增强实测之RICAP_一个菜鸟的奋斗-CSDN博客

数据增强实测之GridMask_一个菜鸟的奋斗-CSDN博客

数据增强实测之Hide-and-Seek_一个菜鸟的奋斗-CSDN博客

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/189662.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • pycharm中如何取消多行注释_pycharm怎么注释代码

    pycharm中如何取消多行注释_pycharm怎么注释代码pycharm中同时注释(取消注释)多行(单行)代码的快捷键都是Ctrl+/:选中代码,同时按住Ctrl+/(command+/),被选中行被注释;再次按下Ctrl+/(command+/),注释被取消….

  • 柴油发电机发电机组_柴油发电机配置规范

    柴油发电机发电机组_柴油发电机配置规范应急柴油发电机主要用于重要场所,在紧急情况或事故停电后瞬间停电,通过应急发电机组迅速恢复 并延长一段供电时间。这类用电负荷称为一级负荷。对断电时间有严格要求的设备、仪表及计算机系统,除配备发电机外还应设电池或UPS供电。应急柴油发电机的工作有两个特点:(1)第一个特点是作应急用,连续工作的时间不长,一般只需要持续运行几小时(≤12H);(2)第二个特点是作备用,应急发电机组平时处于停机等待状态,只…

  • AngularJS总结

    AngularJS总结因为最近想学习一下ionic框架,了解到ionic是基于AngularJS语法,并且通过SASS构建应用程序,之前自己一直用Vue框架,还有Less,刚刚好趁此机会,学习一下AngularJS与SAS…

  • php工厂模式使用场景[通俗易懂]

    php工厂模式使用场景[通俗易懂]场景:使用工厂模式接入:阿里短信验证、腾讯短信验证、百度短信验证创建类文件BaseSMS.php–基础短信服务接口类AliSMS.php–阿里短信服务类BaiduSMS.php–百度短信服务类TencentSMS.php–腾讯短信服务类SmsBusiness.php–短信业务逻辑类具体代码BaseSMS.php–基础短信服务接口类interfaceBaseSMS{publicstaticfunctionsendCode($phone,$co

  • 中国历年出生人口性别比统计_2000年男女比例

    中国历年出生人口性别比统计_2000年男女比例年份比例总数男女1976年出生50.92%20,491,79710,435,19610,056,6011977年出生50.86%17,931,1559,119,6858,811,4701978年出生50.5

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号