mixup 数据增强

将2张图像按照一定比例进行混合,常用于图像分类。

 原图如下:

 mixup后:

 按照0.5的比例进行混合。

代码如下:

import cv2

image1 = cv2.imread('hongxiancai125.jpg')
image1 = cv2.resize(image1,(600,600))
image2 = cv2.imread('huluobo1.jpg')
image2 = cv2.resize(image2,(600,600))
new_image = image1*0.5 + image2*0.5

cv2.imwrite('mixup.jpg', new_image)

 随机比例alpha:

import numpy as np

# alpha为混合的比例
lam = np.random.beta(alpha, alpha)

使用到分类中:

alpha = 1.0  # 默认设置为1
criterion = nn.CrossEntropyLoss()
for (inputs, labels) in train_loader:
    lam = np.random.beta(alpha, alpha)
    index = torch.randperm(inputs.size(0))
    images_a, images_b = inputs, inputs[index]
    labels_a, labels_b = labels, labels[index]
    mixed_images = lam * images_a + (1 - lam) * images_b
    outputs = model(mixed_images)
    _, preds = torch.max(outputs, 1)
    loss = lam * criterion(outputs, labels_a) + (1 - lam) * criterion(outputs, labels_b)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值