ffcv

ffcv

插入式数据加载系统,可显著提高模型训练中的数据吞吐量

FFCV通过加速数据加载,显著提升模型训练的数据吞吐量,同时保持训练算法不变,极大地减少训练时间和成本。例如,使用FFCV在一块GPU上训练ImageNet模型仅需35分钟,而CIFAR-10模型仅需36秒。FFCV还提供预封装的标准视觉基准代码、自动优化的数据处理功能,以及适用于各种资源约束环境的灵活选项。更多详细信息和安装指南,请访问官方网站。

ffcv模型训练数据加载计算机视觉加速Github开源项目

项目介绍:FFCV

什么是FFCV?

FFCV,即《Fast Forward Computer Vision》,是一个即插即用的数据加载系统,旨在显著提升模型训练过程中的数据吞吐量。这个系统的核心理念是通过加速数据加载来降低模型训练的成本和时间,无需更改训练算法,只需要替换数据加载器即可。比如,用FFCV在一个GPU上训练ImageNet模型只需35分钟,而训练CIFAR-10模型更是只需36秒,大幅降低云平台上的开销。

如何安装FFCV?

FFCV支持在Linux和Windows系统上安装,安装过程分为以下几个步骤:

Linux系统安装

  1. 创建新的Conda环境,并安装所需的依赖库:
    conda create -y -n ffcv python=3.9 cupy pkg-config libjpeg-turbo opencv pytorch torchvision cudatoolkit=11.3 numba -c pytorch -c conda-forge conda activate ffcv
  2. 使用pip安装FFCV:
    pip install ffcv

如果安装过程中遇到包冲突错误,可以尝试conda config --env --set channel_priority flexible,或者在某些情况下增加compilers包。此外,还提供了一个无需Conda的Dockerfile,供选择使用。

Windows系统安装

  1. 安装OpenCV4,并将相应的路径添加到环境变量。
  2. 安装libjpeg-turbo和pthread,同样将相应路径添加到环境变量。
  3. 根据CUDA版本安装CuPy。
  4. 使用pip安装FFCV:
    pip install ffcv

快速开始

FFCV的使用分为两个主要步骤。

转换数据集

首先,需要将数据集转换为FFCV格式。这可以通过ffcv.fields模块定义数据字段类型,然后使用DatasetWriter写入数据集。例如:

from ffcv.writer import DatasetWriter from ffcv.fields import RGBImageField, IntField my_dataset = make_my_dataset() # 用户需定义自己的数据集 write_path = '/输出/路径/转换后的数据集.beton' writer = DatasetWriter(write_path, { 'image': RGBImageField(max_resolution=256), 'label': IntField() }) writer.from_indexed_dataset(my_dataset)

替换数据加载器

在训练时,使用ffcv的加载器替换原有的数据加载器,非常简单。例如,在PyTorch中:

from ffcv.loader import Loader, OrderOption from ffcv.transforms import ToTensor, ToDevice, ToTorchImage, Cutout from ffcv.fields.decoders import IntDecoder, RandomResizedCropRGBImageDecoder decoder = RandomResizedCropRGBImageDecoder((224, 224)) image_pipeline = [decoder, Cutout(), ToTensor(), ToTorchImage(), ToDevice(0)] label_pipeline = [IntDecoder(), ToTensor(), ToDevice(0)] pipelines = { 'image': image_pipeline, 'label': label_pipeline } loader = Loader(write_path, batch_size=bs, num_workers=num_workers, order=OrderOption.RANDOM, pipelines=pipelines) for epoch in range(epochs): ...

特色功能

FFCV拥有一系列独特的功能,使其在多种资源受限环境下加快训练速度:

  • 即插即用:只需简单地替换数据加载器即可使用FFCV,无需更改训练代码中的其他部分。

  • 快速数据处理:自动处理数据读取、缓存、传输等,高效节省用户时间。

  • 数据处理自动编译与融合:支持预写和自定义数据增强操作,这些操作会自动转为机器码并异步调度以避免加载延迟。

  • 灵活的数据加载选项:可以根据可用的资源优化数据加载方式,支持从RAM、SSD或网络磁盘加载数据。

  • 多模型同GPU训练:采用线程式加载方式,允许在同一GPU上同时训练多个模型而无数据加载开销。

  • 图像处理工具:提供快速JPEG编码与解码,以及混合存储数据集以便优化I/O与计算开销。

以上列举的功能,让FFCV在计算机视觉任务中占据了重要地位,且提供了详细的性能指导和示例代码,帮助用户快速上手。

贡献者团队

FFCV的开发团队包括Guillaume Leclerc、Logan Engstrom、Andrew Ilyas、Sam Park和Hadi Salman等多人,他们共同努力致力于提升训练速度,去除数据瓶颈。

编辑推荐精选

博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
商汤小浣熊

商汤小浣熊

最强AI数据分析助手

小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。

imini AI

imini AI

像人一样思考的AI智能体

imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。

下拉加载更多