tanglang96/DataLoaders_DALI
tanglang96/DataLoaders_DALI has 884 GitHub stars and 117 forks. Star changes are not measured yet. Last checked 2026-11-14 12:05 UTC. Last push 2020-07-04.
計測したスター増加
- 24時間
- 履歴を収集中
- 7日間
- 履歴を収集中
- 15日間
- 履歴を収集中
- 1か月
- 履歴を収集中
期間ごとの純増数です。期間は重複しており、日別の値ではありません。未計測の値は空欄です。スター数は注目度の指標であり、品質の保証ではありません。
概要
PyTorch DataLoaders implemented with DALI for accelerating image preprocessing
機械学習README.md
オリジナルPyTorch DataLoaders with DALI
PyTorch DataLoaders implemented with nvidia-dali, we've implemented CIFAR-10 and ImageNet dataloaders, more dataloaders will be added in the future.
With 2 processors of Intel(R) Xeon(R) Gold 6154 CPU, 1 Tesla V100 GPU and all dataset in memory disk, we can extremely accelerate image preprocessing with DALI.
| Iter Training Data Cost(bs=256) | CIFAR-10 | ImageNet |
|---|---|---|
| DALI | 1.4s(2 processors) | 625s(8 processors) |
| torchvision | 280.1s(2 processors) | 13400s(8 processors) |
In CIFAR-10 training, we can reduce tranining time from 1 day to 1 hour with our hardware setting.
Requirements
You only need to install nvidia-dali package and version should be >= 0.12, we've tested version 0.11 and it didn't work
#for cuda9.0
pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/cuda/9.0 nvidia-dali
#for cuda10.0
pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/cuda/10.0 nvidia-dali
More details and documents can be found here
Usage
You can use these dataloaders easily as the following example
from base import DALIDataloader
from cifar10 import HybridTrainPipe_CIFAR
pip_train = HybridTrainPipe_CIFAR(batch_size=TRAIN_BS,
num_threads=NUM_WORKERS,
device_id=0,
data_dir=IMG_DIR,
crop=CROP_SIZE,
world_size=1,
local_rank=0,
cutout=0)
train_loader = DALIDataloader(pipeline=pip_train,
size=CIFAR_IMAGES_NUM_TRAIN,
batch_size=TRAIN_BS,
onehot_label=True)
for i, data in enumerate(train_loader): # Using it just like PyTorch dataloader
images = data[0].cuda(non_blocking=True)
labels = data[1].cuda(non_blocking=True)
If you have large enough memory for storing dataset, we strongly recommend you to mount a memory disk and put the whole dataset in it to accelerate I/O, like this
mount -t tmpfs -o size=20g tmpfs /userhome/memory_data
It's noteworthy that 20g above is a ceiling but not occupying 20g memory at the moment you mount the tmpfs, memories are occupied as you putting dataset in it. Compressed files should not be extracted before you've copied them into memory, otherwise it could be much slower.
関連プロジェクトを探す
tensorflow/tensorflow
すべての人のためのオープンソース機械学習フレームワーク
201,595 スターhuggingface/transformers
🤗 Transformers:テキスト、ビジョン、音声、マルチモーダルの最先端機械学習モデル向けモデル定義フレームワークで、推論と学習の両方に対応します。
168,962 スターAUTOMATIC1111/stable-diffusion-webui
Stable Diffusion の Web UI
165,311 スターComfy-Org/ComfyUI
グラフとノードによるインターフェースを備えた、最も強力でモジュール性の高い拡散モデル向け GUI、API、バックエンド。世界最速のローカル推論エンジン。
146,765 スター