- 深度学习
- 计算机视觉
- NLP
- 多模态
- 模型训练
- 大模型
【免费下载链接】corenet
CoreNet: A library for training deep neural networks
RangeAugment 是 CoreNet 内置的一种自动化数据增强方法,其核心思想是让每个增强算子(亮度、对比度、噪声)学会模型专属、任务专属的幅度范围,而非依赖人工调参或昂贵的搜索。本文以 projects/range_augment/README.md 为骨架,结合 corenet/modeling/neural_augmentor 的源码实现与五类任务的配置文件,系统讲解 RangeAugment 的原理、代码结构、损失函数与配置写法,并给出图像分类、语义分割、目标检测、CLIP 对比学习与知识蒸馏五类任务的完整训练、评估与演示命令,帮助你在自己的数据集上直接复现和迁移这一技术。
一、RangeAugment 是什么
RangeAugment(论文标题RangeAugment: Efficient Online Augmentation with Range Learning,arXiv:2212.10553)是一种自动数据增强方法。与以往自动增强方法(如通过强化学习或可微搜索寻找最优策略)不同,RangeAugment 的核心思想是:
- 将数据增强的幅度(magnitude)范围设计为可学习的参数;
- 在学习过程中,模型会针对当前模型和当前任务自动调整每个增强算子的幅度范围;
- 整个过程是**在线(online)**的,即在训练的同时进行,无需额外的搜索阶段或昂贵的离线评估。
在 CoreNet 代码库中,RangeAugment 被命名为Neural Augmentor(简称 NA),实现位于 corenet/modeling/neural_augmentor 目录,这一点在 projects/range_augment/README.md 中有明确说明。
支持的任务矩阵
仓库为 RangeAugment 提供了完整的训练、评估代码、预训练模型与配置文件,覆盖五大类任务:
| 任务 | 数据集 | 说明文档 |
|---|---|---|
| 图像分类 | ImageNet | README-classification.md |
| 语义分割 | ADE20k、PASCAL VOC | README-segmentation.md |
| 目标检测 | MS-COCO | README-object-detection.md |
| 对比学习(图像-文本对) | 自定义图像-文本对数据集 | README-clip.md |
| 知识蒸馏 | ImageNet | README-distillation.md |
所有任务对应的 YAML 配置集中在 projects/range_augment 下,按classification/、segmentation/、detection/、clip/、distillation/分目录组织,可直接作为新实验的起点。
二、源码级解读:Neural Augmentor 的实现
2.1 目录结构与类层次
从源码结构看,Neural Augmentor 由两部分组成:
- 增强器(增广模块):corenet/modeling/neural_augmentor/neural_aug.py,负责定义可学习的增强算子与参数;
- 采样器与算子:corenet/modeling/neural_augmentor/utils/neural_aug_utils.py,提供参数采样器(
FixedSampler、UniformSampler)、参数约束(Clip)以及亮度/对比度/噪声的具体计算函数。
neural_aug.py中定义了三层结构:
nn.Module └── BaseNeuralAugmentor # 基类:参数管理、训练入口、通用逻辑 ├── BasicNeuralAugmentor # mode="basic":学习固定幅值(每个通道一组参数) └── DistributionNeuralAugmentor # mode="distribution":学习幅度范围(分布采样)模块的构建入口是文件末尾的build_neural_augmentor(opts)函数(见 neural_aug.py):根据model.learn_augmentation.mode的值返回DistributionNeuralAugmentor、BasicNeuralAugmentor,或返回None(表示不启用增强学习)。
2.2 两种可配置模式
Basic 模式(BasicNeuralAugmentor):为每个增强算子学习一组固定的幅值参数(per-channel,形状为[1, 3, 1, 1]),同一个 batch 内所有图像共享同一参数。具体初始化(见_build_aug_fns):
- 亮度/对比度:
FixedSampler(value=1.0, Clip(0.1, 10.0)); - 噪声:
FixedSampler(value=0.0, Clip(0.0, 1.0))。
Distribution 模式(DistributionNeuralAugmentor):为每个算子学习幅度范围的上下界,训练时从[low, high]均匀分布中采样实际幅度,从而覆盖更丰富的增强强度(见_build_aug_fns_with_uniform_dist):
- 亮度/对比度:
UniformSampler(low=0.5, high=1.5),其中下界经Clip(0.1, 0.9)约束、上界经Clip(1.1, 10.0)约束; - 噪声:
UniformSampler(low=0.0, high=0.1),下界经Clip(0.0, 0.00005)、上界经Clip(0.0001, 1.0)约束。
2.3 可学习的增强算子
BaseNeuralAugmentor内置三种增强算子,各自对应一个可学习参数,并可通过命令行开关独立启用:
| 算子 | 参数 | 代码实现 |
|---|---|---|
| 亮度 Brightness | --model.learn-augmentation.brightness | random_brightness:x = x * magnitude |
| 对比度 Contrast | --model.learn-augmentation.contrast | random_contrast:按通道均值与幅值加权 |
| 噪声 Noise | --model.learn-augmentation.noise | random_noise:叠加方差为variance的高斯噪声 |
这三个函数位于 neural_aug_utils.py。值得注意的实现细节:
- 对比度公式为
(1 - magnitude) * per_channel_mean + x * magnitude,即围绕通道均值缩放; - 采样器通过
Clip模块约束参数范围,Clip支持软裁剪(sigmoid 映射到[min_val, max_val],可保持梯度可微)与硬裁剪(clamp_)两种方式,见 neural_aug_utils.py。
2.4 训练时的前向流程
BaseNeuralAugmentor.forward(neural_aug.py)在训练时执行如下流程:
- 随机打乱增强算子的执行顺序;
- 对每个算子,随机选取 batch 中50%的样本(
batch_size // 2)进行增强; - 将增强后的样本写回原张量;
- 最后将像素值
clip到[0, 1]区间。
这种"每步只增强一半样本"的设计既保持了数据多样性,又让增强损失有稳定的参照(原始图与增强图同时存在,便于计算感知距离损失)。
2.5 关键命令行参数
BaseNeuralAugmentor.add_arguments(neural_aug.py)定义了以下参数,均可通过 CLI 或 YAML 中的model.learn_augmentation段设置:
| 参数 | 取值 | 默认 | 含义 |
|---|---|---|---|
--model.learn-augmentation.mode | basic/distribution | None | 增强学习模式,None表示不启用 |
--model.learn-augmentation.brightness | 布尔 | False | 学习亮度幅度 |
--model.learn-augmentation.contrast | 布尔 | False | 学习对比度幅度 |
--model.learn-augmentation.noise | 布尔 | False | 学习噪声方差 |
--model.learn-augmentation.lr-multiplier | 浮点 | 1.0 | 增强参数的学习率倍率 |
其中lr_multiplier会通过get_trainable_parameters作用到增强参数上(neural_aug.py),便于独立调节增强参数的学习速度。
三、增强损失:Neural Augmentation Loss
RangeAugment 的关键设计之一是用损失函数驱动幅度学习,而不是手工设定"增强多强"。该损失实现在 corenet/loss_fn/neural_augmentation.py,以neural_augmentation名称注册进LOSS_REGISTRY,可作为复合损失的一个子项参与训练。
3.1 PSNR 感知指标与 MSE 换算
目前支持的感知指标为psnr(见__supported_metrics = ["psnr"])。损失的目标是:让"原图与增强图之间的 MSE"逐步逼近一个目标 MSE。源码通过以下公式把 PSNR 换算为 MSE:
PSNR = 20 * log10(255) - 10 * log10(MSE)在_forward_psnr中,首先计算逐样本的 MSE(像素缩放至 0–255 后求平方误差均值),再用Smooth L1约束预测 MSE 与目标 MSE 的距离,最后乘以alpha权重(neural_augmentation.py)。
3.2 课程学习(Curriculum Learning)
target_value可以是一个标量,也可以是一个[start, end]二元组。当传入二元组时,模块会启用课程学习:目标 MSE 从start对应的值平滑过渡到end对应的值,过渡曲线由curriculum_method决定,支持linear(torch.linspace)与cosine(余弦插值)两种方式(见 neural_augmentation.py)。课程周期取scheduler.max_epochs(epoch 制)或scheduler.max_iterations(迭代制)。
这种课程机制的含义是:训练初期允许较强、较明显的增强(对应较低 PSNR),随着训练推进逐步收窄增强幅度(对应较高 PSNR),让模型先见"大场面"再精细化。
3.3 损失参数总览
NeuralAugmentation.add_arguments(neural_augmentation.py)定义的参数:
| 参数 | 默认 | 含义 |
|---|---|---|
--loss.neural-augmentation.perceptual-metric | psnr | 感知指标,目前仅支持psnr |
--loss.neural-augmentation.target-value | [40, 20] | 目标 PSNR(标量或起止二元组,用于课程学习) |
--loss.neural-augmentation.curriculum-method | cosine | 课程曲线:linear或cosine |
--loss.neural-augmentation.alpha | 100.0 | 损失缩放系数;PSNR 模式下会被除以65025(0–255 像素下最大 MSE) |
另外,该损失在验证/评估阶段不参与计算,forward直接返回 0(neural_augmentation.py),保证推理行为不受影响。
四、配置文件实战解读
RangeAugment 的配置通过model.learn_augmentation与loss两个配置段接入训练。下面以 classification/resnet_50.yaml 为例展开。
4.1 增强学习配置段
model: learn_augmentation: brightness: true contrast: true noise: true mode: "distribution"mode: "distribution"对应DistributionNeuralAugmentor,学习每个算子的幅度范围;- 三个算子全部启用,训练时按 2.4 节流程在线执行。
4.2 复合损失配置段
loss: category: "composite_loss" composite_loss: - loss_category: "classification" loss_weight: 1.0 classification: name: "cross_entropy" cross_entropy: label_smoothing: 0.1 - loss_category: "neural_augmentation" loss_weight: 1.0 neural_augmentation: perceptual_metric: "psnr" target_value: [ 40, 5 ] curriculum_method: "cosine"分类任务使用带 0.1 标签平滑的交叉熵(loss_weight=1.0),增强损失以neural_augmentation类别并入复合损失(loss_weight=1.0)。target_value: [40, 5]表示 PSNR 目标从 40 平滑过渡到 5(对应从弱到强的增强幅度课程)。
不同模型配置的课程目标不同:例如 classification/mobilenet_v2.yaml 使用
target_value: [40, 30],而 ResNet-50 使用[40, 5],说明课程范围本身也是模型相关的超参数,可在实验中按需调整。
4.3 配套训练设置
同一配置中还包含与 RangeAugment 配套的训练技巧:
- 训练时长:ResNet-50 训练 600 epoch(
scheduler.max_epochs: 600),MobileNetv2 为 300 epoch;ResNet-50 使用余弦调度(max_lr: 0.5,min_lr: 2.e-4,5000 步 warmup); - Batch 规模:
train_batch_size0: 128,注释明确"有效 batch 为 1024(128 × 8 GPUs)"; - 基础增强:
random_resized_crop、random_horizontal_flip,部分大模型配置还启用mixup(alpha=0.2)与cutmix(alpha=1.0); - EMA:
ema.enable: true, momentum: 0.0005,论文建议 MobileViT 使用 EMA 权重做评测; - 可变 batch 采样器:
sampler.name: "variable_batch_sampler"支持多尺度训练(crop 尺寸 128–320)。
五、实战一:ImageNet 图像分类
5.1 训练
论文研究中的各分类骨干网络(含移动端与非移动端)的单节点8 张 A100 GPU训练命令如下(来源 README-classification.md):
export CFG_FILE="PATH_TO_MODEL_CONFIGURATION_FILE" corenet-train --common.config-file $CFG_FILE --common.results-loc classification_results模型配置文件位于 classification 目录,覆盖 EfficientNet-B0~B3、MobileNetv1/v2/v3、MobileViTv1、RegNetY-16GF、ResNet-50/101、SE-ResNet-50、Swin-Transformer-Tiny/Small 等 14 个模型。
注意:训练前务必修改配置中的数据集路径(
dataset.root_train/dataset.root_val),默认指向/mnt/imagenet/training与/mnt/imagenet/validation。
5.2 评估
export CFG_FILE="PATH_TO_MODEL_CONFIGURATION_FILE" export MODEL_WEIGHTS="PATH_TO_MODEL_WEIGHTS_FILE" export DATASET_PATH="PATH_TO_DATASET" CUDA_VISIBLE_DEVICES=0 corenet-eval --common.config-file $CFG_FILE --common.results-loc classification_results --model.classification.pretrained $MODEL_WEIGHTS --common.override-kwargs dataset.root_val=$DATASET_PATH5.3 ImageNet 结果
| 模型 | Top-1 | 配置 |
|---|---|---|
| MobileNetv1-1.0 | 73.8 | mobilenet_v1.yaml |
| MobileNetv2-1.0 | 73.0 | mobilenet_v2.yaml |
| MobileNetv3-Large | 75.1 | mobilenet_v3.yaml |
| MobileViTv1-Small | 78.2 | mobilevit_v1.yaml |
| EfficientNet-B0 | 77.3 | efficientnet_b0.yaml |
| EfficientNet-B1 | 79.5 | efficientnet_b1.yaml |
| EfficientNet-B2 | 81.3 | efficientnet_b2.yaml |
| EfficientNet-B3 | 81.9 | efficientnet_b3.yaml |
| ResNet-50 | 80.2 | resnet_50.yaml |
| ResNet-101 | 81.9 | resnet_101.yaml |
| SwinTransformer-Tiny | 81.1 | swin_transformer_tiny.yaml |
| SwinTransformer-Small | 82.8 | swin_transformer_small.yaml |
原 README 提示:MobileViT 按论文建议使用 EMA 权重评测,其余模型使用最佳 checkpoint。各模型的预训练权重与训练日志链接见原文档表格,此处不再列出外部地址。
六、实战二:语义分割(DeepLabv3)
6.1 训练
单节点1 张 A100 GPU即可训练带 DeepLabv3 分割头的移动端与非移动端骨干(来源 README-segmentation.md):
export CFG_FILE="PATH_TO_MODEL_CONFIGURATION_FILE" corenet-train --common.config-file $CFG_FILE --common.results-loc segmentation_results配置位于 segmentation/ade20k 与 segmentation/pascal_voc 两个目录,同样需要先修改数据集路径。
6.2 评估
export CFG_FILE="PATH_TO_MODEL_CONFIGURATION_FILE" export MODEL_WEIGHTS="PATH_TO_MODEL_WEIGHTS_FILE" CUDA_VISIBLE_DEVICES=0 corenet-eval-seg --common.config-file $CFG_FILE --common.results-loc seg_results --model.segmentation.pretrained $MODEL_WEIGHTS6.3 ADE20k 结果(mIoU)
| 骨干 | mIoU | 配置 |
|---|---|---|
| MobileNetv1-1.0 | 39.4 | deeplabv3_mobilenet_v1.yaml |
| MobileNetv2-1.0 | 38.6 | deeplabv3_mobilenet_v2.yaml |
| MobileNetv3-Large | 38.9 | deeplabv3_mobilenet_v3.yaml |
| MobileViTv1-Small | 38.5 | deeplabv3_mobilevit.yaml |
| EfficientNet-B3 | 43.9 | deeplabv3_efficientnet_b3.yaml |
| ResNet-50 | 44.0 | deeplabv3_resnet_50.yaml |
| ResNet-101 | 46.5 | deeplabv3_resnet_101.yaml |
6.4 PASCAL VOC 2012 结果(mIoU)
| 骨干 | mIoU | 配置 |
|---|---|---|
| MobileNetv1-1.0 | 77.2 | deeplabv3_mobilenet_v1.yaml |
| MobileNetv2-1.0 | 76.7 | deeplabv3_mobilenet_v2.yaml |
| MobileNetv3-Large | 77.0 | deeplabv3_mobilenet_v3.yaml |
| EfficientNet-B3 | 82.0 | deeplabv3_efficientnet_b3.yaml |
| ResNet-50 | 81.2 | deeplabv3_resnet_50.yaml |
| ResNet-101 | 84.0 | deeplabv3_resnet_101.yaml |
6.5 单图 Demo
export IMG_PATH="http://farm2.staticflickr.com/1173/678795137_bb1a91f659_z.jpg" export CFG_FILE="projects/range_augment/segmentation/pascal_voc/deeplabv3_resnet_50.yaml" export MODEL_WEIGHTS="https://docs-assets.developer.apple.com/ml-research/models/cvnets-v2/examples/range_augment/segmentation/pascal_voc/deeplabv3_resnet_50.pt" corenet-eval-seg --common.config-file $CFG_FILE \ --common.results-loc results \ --model.segmentation.pretrained $MODEL_WEIGHTS \ --evaluation.segmentation.mode single_image \ --evaluation.segmentation.path "${IMG_PATH}" \ --evaluation.segmentation.apply-color-map \ --evaluation.segmentation.save-overlay-rgb-pred若在 CPU 上运行,请追加
--common.override-kwargs common.mixed_precision=false关闭混合精度。
七、实战三:目标检测与实例分割(Mask R-CNN)
7.1 训练
单节点8 张 A100 GPU训练 Mask R-CNN(来源 README-object-detection.md):
export CFG_FILE="PATH_TO_MODEL_CONFIGURATION_FILE" corenet-train --common.config-file $CFG_FILE --common.results-loc detection_results配置位于 detection 目录,覆盖 MobileNetv1/v2/v3、MobileViT、EfficientNet-B3、ResNet-50/101 等骨干。
7.2 评估
export CFG_FILE="PATH_TO_MODEL_CONFIGURATION_FILE" export MODEL_WEIGHTS="PATH_TO_MODEL_WEIGHTS_FILE" export DATASET_PATH="PATH_TO_DATASET" CUDA_VISIBLE_DEVICES=0 corenet-eval-det --common.config-file $CFG_FILE \ --common.results-loc seg_results \ --model.detection.pretrained $MODEL_WEIGHTS --evaluation.detection.resize-input-images \ --evaluation.detection.mode validation_set \ --common.override-kwargs dataset.root_val=$DATASET_PATH7.3 MS-COCO 结果
| 骨干 | BBox mAP | Seg mAP | 配置 |
|---|---|---|---|
| MobileNetv1-1.0 | 39.4 | 35.6 | maskrcnn_mobilenet_v1.yaml |
| MobileNetv2-1.0 | 38.4 | 34.7 | maskrcnn_mobilenet_v2.yaml |
| MobileNetv3-Large | 35.6 | 32.5 | maskrcnn_mobilenet_v3.yaml |
| MobileViT-Small | 42.0 | 37.7 | maskrcnn_mobilevit.yaml |
| EfficientNet-B3 | 44.5 | 39.5 | maskrcnn_efficientnet_b3.yaml |
| ResNet-50 | 44.0 | 39.5 | maskrcnn_resnet_50.yaml |
| ResNet-101 | 46.1 | 41.1 | maskrcnn_resnet_101.yaml |
7.4 单图 Demo
export IMG_PATH="http://farm2.staticflickr.com/1173/678795137_bb1a91f659_z.jpg" export CFG_FILE="projects/range_augment/detection/maskrcnn_resnet_50.yaml" export MODEL_WEIGHTS="https://docs-assets.developer.apple.com/ml-research/models/cvnets-v2/examples/range_augment/detection/maskrcnn_resnet_50.pt" corenet-eval-det --common.config-file $CFG_FILE \ --common.results-loc results \ --model.detection.pretrained $MODEL_WEIGHTS \ --model.detection.n-classes 81 \ --evaluation.detection.resize-input-images \ --evaluation.detection.mode single_image \ --evaluation.detection.path "${IMG_PATH}" \ --model.detection.mask-rcnn.box-score-thresh 0.7提示:可通过
--model.detection.mask-rcnn.box-score-thresh调节边界框置信度阈值,以控制可视化时显示的框与掩码数量;CPU 运行同样需追加--common.override-kwargs common.mixed_precision=false。
八、实战四:CLIP 对比学习(图像-文本对)
8.1 数据集准备
CLIP 训练使用图像-文本对(tar 格式)数据集,数据集的构造与使用说明见 img_text_tar_dataset.py 文件内文档(来源 README-clip.md)。
8.2 多节点分布式训练
CLIP 使用仓库自定义的 ViT 实现,可配合多尺度可变 batch 采样器。CLIP 模型在多节点、每节点多 GPU上训练,具体 GPU/节点数量见配置文件的注释。单节点训练命令模板如下:
export CFG_FILE="PATH_TO_MODEL_CONFIGURATION_FILE" export RANK=<NODE_ID> * <NUM_GPUS_PER_NODE> # 例如 Node-0: RANK=0; Node-1: RANK=8; Node-2: RANK=16 export WORLD_SIZE=<NUM_NODES> * <NUM_GPUS_PER_NODE> # 例如 32 节点 × 8 GPU = 256 corenet-train --common.config-file $CFG_FILE --common.results-loc results_clip --ddp.rank $RANK --ddp.world-size $WORLD_SIZE --ddp.dist-url 'tcp://IP_OF_NODE0:FREEPORT'注意:RANK与WORLD_SIZE由节点编号、每节点 GPU 数相乘得到,dist-url指向 0 号节点的空闲端口。
8.3 零样本评估(ImageNet)
ViT-B 图像骨干的 CLIP 模型可在 224×224 分辨率下评估:
export CONFIG_FILE="projects/range_augment/clip/clip_vit_base.yaml" export MODEL_WEIGHTS=https://docs-assets.developer.apple.com/ml-research/models/cvnets-v2/examples/range_augment/clip/clip_vit_base_16.pt export DATASET_PATH="/mnt/vision_datasets/imagenet/validation/" # 改为你的 ImageNet 验证集路径 CUDA_VISIBLE_DEVICES=0 corenet-eval --common.config-file $CONFIG_FILE --model.multi-modal-image-text.pretrained $MODEL_WEIGHTS --common.override-kwargs dataset.multi_modal_img_text.zero_shot_img_cls_dataset_name="imagenet" dataset.root_val=$DATASET_PATH8.4 零样本 Top-1 结果(多分辨率)
| 模型 | 160 | 192 | 224 | 256 | 288 | 配置 |
|---|---|---|---|---|---|---|
| CLIP w/ ViT-B/16 | 69.26 | 71.07 | 71.84 | 72.34 | 72.82 | clip_vit_base.yaml |
| CLIP w/ ViT-H/16 | 76.13 | 77.35 | 77.92 | 78.41 | 78.56 | clip_vit_huge.yaml |
原 README 注明:CLIP 模型的 EMA 与最佳 checkpoint 表现相近,此处报告的是最佳 checkpoint 的结果。
8.5 ImageNet 微调
CLIP 微调配置位于 clip_finetune_imagenet,训练与评估命令与图像分类任务一致(参见 README-classification.md)。官方在 ImageNet 上对 CLIP 的 ViT 骨干微调10 个 epoch的结果:
| 模型 | Top-1 @ 224x224 | 配置 |
|---|---|---|
| ViT-B/16 | 84.31 | clip_finetune_imagenet/clip_vit_base.yaml |
| ViT-H/16 | 86.90 | clip_finetune_imagenet/clip_vit_huge.yaml |
九、实战五:知识蒸馏
仓库使用RangeAugment 训练的 ResNet-101 作为教师,对四个移动端模型做知识蒸馏(来源 README-distillation.md)。蒸馏配置位于 distillation 目录,训练与评估流程同样遵循 ImageNet 分类任务的命令(见 README-classification.md)。
9.1 ImageNet 蒸馏结果
| 学生模型 | Top-1(ERM) | Top-1(蒸馏) | 配置 |
|---|---|---|---|
| MobileNetv1 | 73.8 | 75.2 | teacher_resnet101_student_mobilenet_v1.yaml |
| MobileNetv2 | 73.0 | 73.4 | teacher_resnet101_student_mobilenet_v2.yaml |
| MobileNetv3 | 75.1 | 76.0 | teacher_resnet101_student_mobilenet_v3.yaml |
| MobileViT | 78.2 | 79.4 | teacher_resnet101_student_mobilevit.yaml |
说明:ERM(经验风险最小化)一列来自 README-classification.md 的基线结果;MobileViT 按论文建议使用 EMA checkpoint 评测。可以看到,蒸馏在四个移动模型上均带来 Top-1 提升,其中 MobileNetv1 提升 1.4 个百分点。
十、总结与扩展阅读
RangeAugment 在 CoreNet 中的落地路径可以概括为一条清晰的链路:
- 配置接入:在
model.learn_augmentation段声明启用哪些算子与模式(basic/distribution); - 在线增强:
DistributionNeuralAugmentor或BasicNeuralAugmentor在训练前向中实时生成增强图像; - 损失驱动:
NeuralAugmentation损失以 PSNR 感知指标、配合余弦/线性课程学习,持续把增强幅度推向"模型恰好能适应"的水平; - 跨任务复用:由于增强器与损失都以通用模块形式注册(
LOSS_REGISTRY、build_neural_augmentor),分类、分割、检测、对比学习、蒸馏任务只需在 YAML 中配置即可复用同一套机制。
如果你想深入源码,建议从 corenet/modeling/neural_augmentor/neural_aug.py(增强器实现)、neural_aug_utils.py(采样器与算子)、neural_augmentation.py(损失与课程学习)三个文件入手;测试用例可参考 tests/loss_fns/test_neural_aug.py 与 tests/loss_fns/test_neural_aug_compatibility.py,它们能帮助你验证增强损失与复合损失组合的正确性。
引用
如果 RangeAugment 对你的研究或工程有帮助,原 README 建议引用以下文献:
@article{mehta2022rangeaugment, title={RangeAugment: Efficient Online Augmentation with Range Learning}, author = {Mehta, Sachin and Naderiparizi, Saeid and Faghri, Fartash and Horton, Maxwell and Chen, Lailin and Farhadi, Ali and Tuzel, Oncel and Rastegari, Mohammad}, journal={arXiv preprint arXiv:2212.10553}, year={2022}, } @inproceedings{mehta2022cvnets, author = {Mehta, Sachin and Abdolhosseini, Farzad and Rastegari, Mohammad}, title = {CVNets: High Performance Library for Computer Vision}, year = {2022}, booktitle = {Proceedings of the 30th ACM International Conference on Multimedia}, series = {MM '22} }- 深度学习
- 计算机视觉
- NLP
- 多模态
- 模型训练
- 大模型
【免费下载链接】corenet
CoreNet: A library for training deep neural networks
相关推荐
Betago围棋AI深度学习实战:基于Keras的完整指南
Betago围棋AI深度学习实战:基于Keras的完整指南 Betago围棋AI是一个开源项目,由Max Pumperla开发,旨在让开发者和研究者能够深入了解
人工智能深度学习游戏开发深度学习中的对比学习数据增强库:基于ivy的实现
深度学习中的对比学习数据增强库:基于ivy的实现 引言 在深度学习领域,数据增强(Data Augmentation)是提升模型泛化能力的关键技术之一,尤其在对
人工智能机器学习开发工具PaddleSpeech 基于 Tiny 数据集的 DeepSpeech2 离线/在线 ASR 完整实战指南
PaddleSpeech 基于 Tiny 数据集的 DeepSpeech2 离线/在线 ASR 完整实战指南 本篇指南以 PaddleSpeech 仓库中的 e
人工智能语音音频
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考