数据增强---Mixup
Mixup
什么是Mixup
假设我们在做猫狗分类的任务,label使用one-hot vector形式([1,0] → 狗,[0,1]→猫),mixup的输出将图像和label分别进行了加权融合。
如果用数学公式来表达的话:
其中是输出图像和label,是输入的两种图像和label,一般是一个服从分布的随机数。
这提供了处于两个类别(猫和狗)之前的一些样本,扩展了样本分布,让训练出的模型具有更强的健壮性。
pytorch实现



import cv2
import numpy as np
import torch
def mix_up(img1, label1, img2, label2, alpha=0.2):
img1 = img1.astype("float")
img2 = img2.astype("float")
alpha = 0.2
lambda_ = np.random.beta(alpha, alpha)
mixed_image = lambda_ * img1 + (1. - lambda_) * img2
mixed_label = np.multiply(lambda_, label1) + np.multiply((1. - lambda_), label2)
return mixed_image, mixed_label
if __name__ == '__main__':
dog = cv2.imread("data/inu.png")
dog_label = [0., 1.]
cat = cv2.imread("data/neko.png")
cat_label = [1., 0.]
mixed_img, mixed_label = mix_up(dog, dog_label, cat, cat_label)
cv2.imshow('original', dog)
cv2.waitKey()
cv2.imshow('original', cat)
cv2.waitKey()
mixed_img = mixed_img.astype("uint8")
cv2.imshow('original', mixed_img)
cv2.waitKey()
cv2.imwrite("data/mixed.png", mixed_img)
参考文章
https://towardsdatascience.com/enhancing-neural-networks-with-mixup-in-pytorch-5129d261bc4a
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构