basic/
├── README.md # 完整学习大纲
├── QUICKSTART.md # 10 分钟快速入门
├── INDEX.md # 本文件:索引和导航
├── requirements.txt # Python 依赖
├── check_environment.py # 环境检查脚本
│
├── 01_hello_dali.py # 第一个 DALI 程序
├── 02_basic_image_processing.py # 基础图像处理
├── 03_augmentation.py # 数据增强
├── 04_pytorch_integration.py # PyTorch 集成
├── 05_external_source.py # 外部数据源
├── 06_to_08_advanced_features.py # 高级特性(并行、多GPU、动态配置)
├── 09_minio_basic.py # MinIO 基础集成
└── 10_minio_production_pipeline.py # 生产级 MinIO Pipeline
# 检查环境
python basic/check_environment.py
# 如果有缺失,安装依赖
pip install -r basic/requirements.txt
适合:已有深度学习经验,想快速了解 DALI
# 1. 阅读快速入门
cat basic/QUICKSTART.md
# 2. 运行核心示例
python basic/01_hello_dali.py # 理解 Pipeline
python basic/03_augmentation.py # 数据增强
python basic/04_pytorch_integration.py # PyTorch 集成
python basic/09_minio_basic.py # MinIO 集成
适合:系统学习 DALI,掌握所有特性
# 1. 阅读学习大纲
cat basic/README.md
# 2. 按顺序运行所有示例
for script in basic/0*.py; do
echo "Running $script..."
python $script
done
适合:有具体项目需求
直接跳到相关章节:
01_hello_dali.py03_augmentation.py04_pytorch_integration.py05_external_source.py06_to_08_advanced_features.py09_minio_basic.py + 10_minio_production_pipeline.py每个示例都是完整可运行的,可以直接复制代码段:
基础 Pipeline 模板:
# 从 01_hello_dali.py
@pipeline_def
def simple_pipeline(data_dir):
images, labels = fn.readers.file(file_root=data_dir)
images = fn.decoders.image(images, device="mixed")
images = fn.resize(images, size=224)
return images, labels
训练 Pipeline 模板:
# 从 03_augmentation.py
@pipeline_def
def training_pipeline(data_dir):
# ... 完整的训练数据增强
MinIO Pipeline 模板:
# 从 10_minio_production_pipeline.py
# 带缓存、错误处理的生产级实现
完成学习后,你应该能够:
基础知识:
图像处理:
数据增强:
PyTorch 集成:
高级特性:
MinIO 集成:
时长: 15 分钟 难度: ⭐ 内容:
关键代码:
@pipeline_def
def simple_pipeline(data_dir):
images, labels = fn.readers.file(file_root=data_dir)
return images, labels
pipe = simple_pipeline(data_dir="data", batch_size=8, num_threads=2, device_id=0)
pipe.build()
outputs = pipe.run()
时长: 15 分钟 难度: ⭐⭐ 内容:
性能提示:
device="mixed" 获得最佳性能时长: 30 分钟 难度: ⭐⭐⭐ 内容:
最佳实践:
时长: 30 分钟 难度: ⭐⭐⭐ 内容:
性能提升:
tensor.cuda()时长: 15 分钟 难度: ⭐⭐⭐ 内容:
使用场景:
时长: 30 分钟 难度: ⭐⭐⭐⭐ 内容:
性能调优:
时长: 20 分钟 难度: ⭐⭐⭐ 前置条件: MinIO 服务运行 内容:
环境准备:
# 启动 MinIO
docker run -d -p 9000:9000 -p 9001:9001 \
-e MINIO_ROOT_USER=minioadmin \
-e MINIO_ROOT_PASSWORD=minioadmin \
minio/minio server /data --console-address ":9001"
时长: 30 分钟 难度: ⭐⭐⭐⭐⭐ 内容:
生产特性:
Q: 应该从哪里开始?
A: 先运行 check_environment.py 检查环境,然后阅读 QUICKSTART.md。
Q: 我只想学 MinIO 集成,可以跳过前面吗? A: 建议至少学习 01、05 示例理解基础概念,然后直接跳到 09、10。
Q: 代码运行出错怎么办? A:
python check_environment.pyQ: 性能没有提升? A:
device="mixed" 解码num_threads(4-8)prefetch_queue_depth(2-3)nvidia-smi -l 1)Q: 如何调试 Pipeline? A:
fn.dump_image 保存中间图像完成本教程后,可以:
遇到问题或有改进建议?
祝学习愉快!🎉