diff --git a/PyTorch/contrib/cv/classification/EfficientNet-B3/README -raw.md b/PyTorch/contrib/cv/classification/EfficientNet-B3/README -raw.md new file mode 100644 index 0000000000000000000000000000000000000000..a448405d963d209c90f5f9b31a563cca0269ff84 --- /dev/null +++ b/PyTorch/contrib/cv/classification/EfficientNet-B3/README -raw.md @@ -0,0 +1,52 @@ +# EfficientNet-B3 + +This implements training of Efficientnet-B3 on the ImageNet dataset, mainly modified from [pycls](https://github.com/facebookresearch/pycls). + +## EfficientNet-B3 Detail + +For details, see[pycls](https://github.com/facebookresearch/pycls). + + +## Requirements + +- Install PyTorch ([pytorch.org](http://pytorch.org)) +- pip install pycls +- git clone https://github.com/facebookresearch/pycls +- pip install -r requirements.txt +- modify path of dataset in pycls/datasets/loader.py, you can modify the variable _DATA_DIR to your path of imagenet dataset. + +## Training + +To train a model, run scripts with the desired model architecture and the path to the ImageNet dataset: + +```bash +# 1p train 1p +bash test/train_full_1p.sh --data_path={data/path} # train accuracy + +bash test/train_performance_1p.sh --data_path={data/path} # train performance + +# 8p train 8p +bash test/train_full_8p.sh --data_path={data/path} # train accuracy + +bash test/train_performance_8p.sh --data_path={data/path} # train performance + +# 1p eval 1p +bash test/train_eval_8p.sh --data_path={data/path} + +# online inference demo +python3.7 demo.py + +# To ONNX +python3.7.5 pthtar2onnx.py + +``` + +## EfficientNet-B3 training result + +| Acc@1 | FPS | Npu_nums | Epochs | AMP_Type | +| :----: | :--: | :------: | :----: | :------: | +| - | 267 | 1 | 100 | O2 | +| 77.3418 | 1558 | 8 | 100 | O2 | + + + diff --git a/PyTorch/contrib/cv/classification/EfficientNet-B3/README.md b/PyTorch/contrib/cv/classification/EfficientNet-B3/README.md index a448405d963d209c90f5f9b31a563cca0269ff84..cd3ee2f5e46e4059473cefd59d07c4f748d34cca 100644 --- a/PyTorch/contrib/cv/classification/EfficientNet-B3/README.md +++ b/PyTorch/contrib/cv/classification/EfficientNet-B3/README.md @@ -4,7 +4,8 @@ This implements training of Efficientnet-B3 on the ImageNet dataset, mainly modi ## EfficientNet-B3 Detail -For details, see[pycls](https://github.com/facebookresearch/pycls). +1. Migrate to Torch1.8 +2. Note: The original readme.md is changed to README_raw.md ## Requirements @@ -14,39 +15,45 @@ For details, see[pycls](https://github.com/facebookresearch/pycls). - git clone https://github.com/facebookresearch/pycls - pip install -r requirements.txt - modify path of dataset in pycls/datasets/loader.py, you can modify the variable _DATA_DIR to your path of imagenet dataset. +- Download the ImageNet dataset and Dataset must be in Efficientnet-B3/pycls/datasets/data +- Note: Torch and Apex are linux_AARCH64 architecture packages + - CANN: 5.0.RC1 + - Pytorch: 1.8.1+ascend.rc2.20220712 + - torch-npu: 1.8.1rc2.post20220505 + - python:3.7.5 + - OS:Ubuntu 18.04.6+aarch ## Training To train a model, run scripts with the desired model architecture and the path to the ImageNet dataset: ```bash -# 1p train 1p -bash test/train_full_1p.sh --data_path={data/path} # train accuracy +# Link the dataset from source to target +ln -s {data/path} EfficientNet-B3/pycls/datasets/data +# 1p train 1p +# run 1 epoch bash test/train_performance_1p.sh --data_path={data/path} # train performance -# 8p train 8p -bash test/train_full_8p.sh --data_path={data/path} # train accuracy - +# 8p train 8p +# run 1 epcoh bash test/train_performance_8p.sh --data_path={data/path} # train performance +# run 100 epoch, running time: 27h +bash test/train_full_8p.sh --data_path={data/path} # train accuracy # 1p eval 1p bash test/train_eval_8p.sh --data_path={data/path} - -# online inference demo -python3.7 demo.py - -# To ONNX -python3.7.5 pthtar2onnx.py - ``` ## EfficientNet-B3 training result -| Acc@1 | FPS | Npu_nums | Epochs | AMP_Type | -| :----: | :--: | :------: | :----: | :------: | -| - | 267 | 1 | 100 | O2 | -| 77.3418 | 1558 | 8 | 100 | O2 | +| Acc@1 | FPS | Npu_nums | Epochs | AMP_Type | Torch | +| :----: | :--: | :------: | :----: | :------: | :---: | +| - | 267 | 1 | 100 | O2 | 1.5 | +| 77.3418 | 1558 | 8 | 100 | O2 | 1.5 | +| - | 321 | 1 | 100 | O2 | 1.8 | +| 77.0613 | 1317 | 8 | 100 | O2 | 1.8 | + diff --git a/PyTorch/contrib/cv/classification/EfficientNet-B3/requirements.txt b/PyTorch/contrib/cv/classification/EfficientNet-B3/requirements.txt index 678848ed816ab39b511aa8cc0181870d2b3a5e82..9e9fc6bb5abaf62cbe84e595a7648ed2fcb865e6 100644 --- a/PyTorch/contrib/cv/classification/EfficientNet-B3/requirements.txt +++ b/PyTorch/contrib/cv/classification/EfficientNet-B3/requirements.txt @@ -1,7 +1,22 @@ -isort==4.3.21 -fvcore -parameterized -setuptools -simplejson -yacs - +certifi==2018.10.15 +cycler==0.11.0 +decorator==5.1.1 +fonttools==4.33.3 +iopath==0.1.9 +kiwisolver==1.4.3 +matplotlib==3.5.2 +mpmath==1.2.1 +numpy==1.21.6 +opencv-python==4.6.0.66 +packaging==21.3 +Pillow==9.1.1 +portalocker==2.4.0 +pyparsing==3.0.9 +python-dateutil==2.8.2 +PyYAML==6.0 +simplejson==3.17.6 +six==1.16.0 +sympy==1.10.1 +tqdm==4.64.0 +typing_extensions==4.2.0 +yacs==0.1.8 diff --git a/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_eval_8p.sh b/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_eval_8p.sh index e96a5c713df539915fe13ef7b598e61a6abc5b22..7904f2eb47925508b8ca7908cf84bdcf546271cb 100644 --- a/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_eval_8p.sh +++ b/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_eval_8p.sh @@ -41,7 +41,7 @@ fi # 数据集软链到脚本内部 cur_path=`pwd` -default_data_path=${cur_path}/pycls/datasets/data/ +default_data_path=${cur_path}/pycls/datasets/data rm -rf ${default_data_path}/imagenet ln -s ${data_path} ${default_data_path}/imagenet diff --git a/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_full_1p.sh b/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_full_1p.sh index ee7ed711a41adbbf38ae2374fe6c0fa1e9b890e6..077f096b4d446fde3b94276ce9ee03583567fdd7 100644 --- a/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_full_1p.sh +++ b/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_full_1p.sh @@ -49,7 +49,7 @@ fi # 数据集软链到脚本内 cur_path=`pwd` -default_data_path=${cur_path}/pycls/datasets/data/ +default_data_path=${cur_path}/pycls/datasets/data rm -rf ${default_data_path}/imagenet ln -s ${data_path} ${default_data_path}/imagenet diff --git a/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_full_8p.sh b/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_full_8p.sh index a2d1bc6d9d70b67eda2e39536497ca4d2c95f14e..8b8cd6793b4ede788c13da49f5f9d24f0032192c 100644 --- a/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_full_8p.sh +++ b/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_full_8p.sh @@ -33,7 +33,7 @@ fi # 数据集软链到脚本内部 cur_path=`pwd` -default_data_path=${cur_path}/pycls/datasets/data/ +default_data_path=${cur_path}/pycls/datasets/data rm -rf ${default_data_path}/imagenet ln -s ${data_path} ${default_data_path}/imagenet diff --git a/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_performance_1p.sh b/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_performance_1p.sh index b6dbf22b45ae38de530c1a7114ae8f9c98982491..c7b30add5a6fee06e9aae890c31fe5a166c2dfc4 100644 --- a/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_performance_1p.sh +++ b/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_performance_1p.sh @@ -49,7 +49,7 @@ fi # 数据集软链到脚本内 cur_path=`pwd` -default_data_path=${cur_path}/pycls/datasets/data/ +default_data_path=${cur_path}/pycls/datasets/data rm -rf ${default_data_path}/imagenet ln -s ${data_path} ${default_data_path}/imagenet diff --git a/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_performance_8p.sh b/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_performance_8p.sh index a0c0fe31396d8e23830816b1898fa75bee3b022c..fe0ba90c3731eecacf721fa4e2bd7644e56d9fb3 100644 --- a/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_performance_8p.sh +++ b/PyTorch/contrib/cv/classification/EfficientNet-B3/test/train_performance_8p.sh @@ -33,7 +33,7 @@ fi # 数据集软链到脚本内部 cur_path=`pwd` -default_data_path=${cur_path}/pycls/datasets/data/ +default_data_path=${cur_path}/pycls/datasets/data rm -rf ${default_data_path}/imagenet ln -s ${data_path} ${default_data_path}/imagenet diff --git a/PyTorch/contrib/cv/classification/EfficientNet-B3/tools/train_net.py b/PyTorch/contrib/cv/classification/EfficientNet-B3/tools/train_net.py index 270aca8c403f67efb914df69931d6fcf8406ead1..e5d6d0abd96956be62d6549dcec1860686b79f79 100644 --- a/PyTorch/contrib/cv/classification/EfficientNet-B3/tools/train_net.py +++ b/PyTorch/contrib/cv/classification/EfficientNet-B3/tools/train_net.py @@ -29,6 +29,8 @@ import pycls.core.trainer as trainer from pycls.core.config import cfg import argparse,sys,os,torch import torch +if torch.__version__>= '1.8': + import torch_npu def init_process_group(proc_rank, world_size, device_type="npu", port="29588"): """Initializes the default process group."""