大模型数据增强配置:从零搭建可用的图像增强流程

很多人在准备大模型训练数据时,会卡在数据增强配置这一步:脚本跑不起来、增强后图片变形、或者参数调了没效果。
这篇教程从零开始,带你在 Linux 服务器上完成一套可用的图像数据增强配置,重点解决环境依赖、脚本编写和结果验证三个环节。

先确认你的环境和数据格式

开始之前,你需要一台能运行 Python 的 Linux 服务器或本地电脑,建议 Python 3.8 以上。
数据增强通常针对图像分类或目标检测任务,假设你的原始图片放在 ~/dataset/images 目录下,格式为 JPG 或 PNG。
如果还没有数据,可以先用几十张图片测试流程。

安装必要的库。
这里使用 albumentations 和 opencv-python,前者是常用的图像增强库,后者负责读写图片。
执行:

pip install albumentations opencv-python numpy

安装完成后,用 python -c "import albumentations; print(albumentations.__version__)" 检查是否成功输出版本号。
如果报错,优先检查 pip 版本和网络,可尝试更换国内镜像源。

编写增强脚本并设置输出目录

新建一个脚本文件 augment.py,放在数据集同级目录。
下面是一个基础增强配置,包含随机旋转、水平翻转、亮度对比度调整和随机裁剪,适合大多数图像任务:

import os
import cv2
import albumentations as A

input_dir = 'dataset/images'
output_dir = 'dataset/augmented'
os.makedirs(output_dir, exist_ok=True)

transform = A.Compose([
    A.RandomRotate90(p=0.5),
    A.HorizontalFlip(p=0.5),
    A.RandomBrightnessContrast(p=0.3),
    A.RandomResizedCrop(height=256, width=256, scale=(0.8, 1.0), p=0.5),
])

for filename in os.listdir(input_dir):
    if not filename.lower().endswith(('.jpg', '.jpeg', '.png')):
        continue
    img_path = os.path.join(input_dir, filename)
    image = cv2.imread(img_path)
    if image is None:
        print(f'无法读取: {filename}')
        continue
    augmented = transform(image=image)['image']
    out_path = os.path.join(output_dir, f'aug_{filename}')
    cv2.imwrite(out_path, augmented)
    print(f'已生成: {out_path}')

保存后运行 python augment.py。
如果一切正常,dataset/augmented 目录下会出现增强后的图片。注意:增强后的图片默认覆盖原文件名前缀,避免混淆。

调整参数时容易踩的坑

第一个常见问题是增强后图片尺寸不一致。
上面的脚本中 RandomResizedCrop 会统一输出 256x256,但如果你去掉它,输出尺寸会跟随原图。
训练模型通常需要固定尺寸,建议保留或显式加 A.Resize(256, 256)。

第二个坑是增强过度导致语义丢失。
比如对文本图像做大幅旋转,文字会变得不可读。原则是增强后的图片仍然能被人类识别为同一类别。
可以先小批量生成,人工抽查几张。

第三个坑是路径写错。
脚本中的 input_dir 和 output_dir 是相对路径,运行时必须在脚本所在目录执行,或者改成绝对路径。
如果提示 FileNotFoundError,先用 ls dataset/images 确认目录存在。

验证增强效果是否达标

跑完脚本后,不要直接拿去训练。
先做两步检查:一是统计输出图片数量,应该和输入图片数量一致(除非你故意跳过损坏文件);
二是随机打开几张增强后的图片,确认没有全黑、全白或严重变形。

可以用一条命令快速统计:

ls dataset/augmented | wc -l

如果数量对不上,检查脚本中的 continue 分支是否跳过了某些文件,或者原图是否损坏。
另外,增强后的图片建议保留一份原始副本,方便对比和回滚。

对于目标检测任务,增强时还需要同步变换标注框,albumentations 支持传入 bboxes 参数,但需要额外处理,本文以分类任务为例,检测任务请参考官方文档调整。

常见疑问

增强后的图片可以直接替换原图训练吗? 不建议。
增强数据应作为补充,和原图一起放入训练集,避免原始分布被破坏。

为什么增强后图片颜色变得很奇怪? 检查是否同时用了多个颜色变换,
比如 RandomBrightnessContrast 和 HueSaturationValue 叠加,
可以降低概率或减少变换种类。

服务器没有图形界面,怎么查看图片? 可以用 scp 下载到本地查看,或者在脚本中增加保存缩略图到指定目录,再用浏览器访问。

整套流程的核心就是:装好库、写对路径、控制增强强度、跑完抽查。
按本文步骤操作后,你应该能得到一批可用的增强图片,后续再根据模型反馈微调参数即可。

分享到:
上一篇
大模型数据清洗教程:从原始文本到训练可用的实操步骤
下一篇
大模型Token计算教程:从文本到计费的完整换算方法
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意