resnet50 使用示例¶
目录¶
#模型根目录
topsmodels/inference/loadgen_samples/vision/classification_and_detection
步骤¶
步骤1:安装软件包¶
需要提前安装好Topsinference的whl。
安装loadgen(whl for python3):
pip3 install --force-reinstall mlperf_loadgen-1.1-<python version>-linux_x86_64.whl
进入classification_and_detection
子文件夹
cd topsmodels/inference/loadgen_samples/vision/classification_and_detection
安装每个场景子目录中的其他相关包:
pip3 install -r requirements.txt
步骤2:准备数据集和预训练模型¶
Resnet50模型在Imagenet数据集上做图片分类任务。
数据集准备详见topsmodels/inference/onnx/common/prepare_dataset/imagenet/README.md
数据集需要放在data文件夹中,预训练模型放在model文件夹中,文件夹结构如下:
model/
└── resnet50_v1.onnx
data/
├── n01440764
│ ├── ILSVRC2012_val_00000293.JPEG
│ ├── ILSVRC2012_val_00002138.JPEG
| └── ……
……
└── val_map.txt
步骤3:运行测试¶
export DATA_DIR=<data文件夹路径>
export MODEL_DIR=<models文件夹路径>
cd <classification_and_detection文件夹路径>
# run one of Scenarios listed below
# for accuracy
./run_local.sh topsinference resnet50 gcu --scenario=Server --accuracy
./run_local.sh topsinference resnet50 gcu --scenario=Offline --max-batchsize=1 --accuracy
./run_local.sh topsinference resnet50 gcu --scenario=SingleStream --accuracy
./run_local.sh topsinference resnet50 gcu --scenario=MultiStream --max-batchsize=1 --accuracy
# for performance
./run_local.sh topsinference resnet50 gcu --scenario=Server --qps=<target qps>
./run_local.sh topsinference resnet50 gcu --scenario=Offline --max-batchsize=1
./run_local.sh topsinference resnet50 gcu --scenario=SingleStream
./run_local.sh topsinference resnet50 gcu --scenario=MultiStream --max-batchsize=1
结果¶
性能和精度信息将会打印在控制台上,形式如下:
TestScenario.<SCENARIO> qps=<QPS>, mean=<MEAN_LATENCY>, time=<TOTAL_TIME>, acc=<ACCURACY>, queries=<QUERY_NUM>, tiles=<LATENCY_TILES>
详细日志会输出到./output/topsinference-gcu/<MODEL_NAME>
。
参考精度¶
model |
acc |
---|---|
resnet50_v1.onnx |
76.456% |
ssd-resnet34 使用示例¶
目录¶
#模型根目录
topsmodels/inference/loadgen_samples/vision/classification_and_detection
步骤¶
步骤1:安装软件包¶
需要提前安装好Topsinference的whl。
安装loadgen(whl for python3):
pip3 install --force-reinstall mlperf_loadgen-1.1-<python version>-linux_x86_64.whl
进入classification_and_detection
子文件夹
cd topsmodels/inference/loadgen_samples/vision/classification_and_detection
安装每个场景子目录中的其他相关包:
pip3 install -r requirements.txt
步骤2:准备数据集和预训练模型¶
SSD-resnet34模型在coco数据集上做图片检测任务。
数据集准备详见topsmodels/inference/onnx/common/prepare_dataset/coco2017/README.md
数据集需要放在data文件夹中,预训练模型放在model文件夹中,文件夹结构如下:
model/
└── ssd_resnet34_1200x1200_with_nms-pt-op13-fp32.onnx
data
├── annotations
│ ├── captions_train2017.json
│ ├── captions_val2017.json
│ ├── instances_train2017.json
│ ├── instances_val2017.json
│ ├── person_keypoints_train2017.json
│ └── person_keypoints_val2017.json
└── val2017
├── 000000000139.jpg
├── 000000000285.jpg
├── 000000000632.jpg
├── ......
├── 000000000776.jpg
└── 000000581781.jpg
步骤3:运行测试¶
export DATA_DIR=<data文件夹路径>
export MODEL_DIR=<models文件夹路径>
cd <classification_and_detection文件夹路径>
# run one of Scenarios listed below
# for accuracy
./run_local.sh topsinference ssd-resnet34 gcu --scenario=Server --accuracy
./run_local.sh topsinference ssd-resnet34 gcu --scenario=Offline --max-batchsize=1 --accuracy
./run_local.sh topsinference ssd-resnet34 gcu --scenario=SingleStream --accuracy
./run_local.sh topsinference ssd-resnet34 gcu --scenario=MultiStream --max-batchsize=1 --accuracy
# for performance
./run_local.sh topsinference ssd-resnet34 gcu --scenario=Server --qps=<target qps>
./run_local.sh topsinference ssd-resnet34 gcu --scenario=Offline --max-batchsize=1
./run_local.sh topsinference ssd-resnet34 gcu --scenario=SingleStream
./run_local.sh topsinference ssd-resnet34 gcu --scenario=MultiStream --max-batchsize=1
结果¶
性能和精度信息将会打印在控制台上,形式如下:
TestScenario.<SCENARIO> qps=<QPS>, mean=<MEAN_LATENCY>, time=<TOTAL_TIME>, acc=<ACCURACY>, queries=<QUERY_NUM>, tiles=<LATENCY_TILES>
详细日志会输出到./output/topsinference-gcu/<MODEL_NAME>
。
参考精度¶
model |
mAP |
---|---|
ssd_resnet34_1200x1200_with_nms-pt-op13-fp32.onnx |
0.196 |
bert large 使用示例¶
目录¶
#模型根目录
topsmodels/inference/loadgen_samples/language/bert
步骤¶
步骤1:安装软件包¶
需要提前安装好Topsinference的whl。
安装loadgen(whl for python3):
pip3 install --force-reinstall mlperf_loadgen-1.1-<python version>-linux_x86_64.whl
进入bert
子文件夹
cd topsmodels/inference/loadgen_samples/language/bert
安装每个场景子目录中的其他相关包:
pip3 install -r requirements.txt
步骤2:准备数据集和预训练模型¶
所选模型是执行自然语言处理中问题任务的BERT-Base&large。数据集使用的是SQuAD v1.1问答数据集。数据集准备执行如下命令:
make setup_base
预训练的模型可以位于build/data/。执行makfile下载数据集后,目录结构如下:
build/
├── data
│ ├── bert_tf_v1_1_large_fp32_384_v2
│ │ ├── bert_large-squad-mlperf-op13-fp32-N.onnx
│ │ └── vocab.txt
│ ├── dev-v1.1.json
│ └── evaluate-v1.1.py
├── mlperf.conf
└── result
步骤3:运行测试¶
PerformanceOnly模式¶
python3 run.py --scenario=[Offline|SingleStream|MultiStream|Server] --backend=topsinference
AccuracyOnly模式¶
python3 run.py --scenario=[Offline|SingleStream|MultiStream|Server] --backend=topsinference --accuracy
结果¶
性能和精度信息将会打印在控制台上,形式如下:
TestScenario.<SCENARIO> qps=<QPS>, mean=<MEAN_LATENCY>, time=<TOTAL_TIME>, acc=<ACCURACY>, queries=<QUERY_NUM>, tiles=<LATENCY_TILES>
详细日志会输出到./output/topsinference-gcu/<MODEL_NAME>
。
参考精度¶
device |
exact_match |
f1 |
---|---|---|
CPU float32 |
83.68968 |
90.87487 |
3d-unet-brats19 使用示例¶
目录¶
#root directory
topsmodels/inference/loadgen_samples/vision/medical_imaging/3d-unet-brats19
步骤¶
步骤1:安装软件包¶
需要提前安装好Topsinference的whl。
安装loadgen(whl for python3):
pip3 install --force-reinstall mlperf_loadgen-1.1-<python version>-linux_x86_64.whl
进入 3d-unet-brats19
子文件夹:
cd topsmodels/inference/loadgen_samples/vision/medical_imaging/3d-unet-brats19
安装每个场景子目录中的其他相关包:
pip3 install -r requirements.txt
步骤2:准备数据集和预训练模型¶
所选模型是执行脑部肿瘤分割任务的3d-unet-brats19。数据集使用的是BraTS2019。
数据集准备请参考文件 topsmodels/inference/onnx/common/prepare_dataset/brats2019/README.md
数据集路径位于build/。
预训练的模型位于model/。
下载完数据集和模型后,目录结构如下:
model/
└── 3dunetbrats-mlperf-op13-fp32-N.onnx
build/
|-- MICCAI_BraTS_2019_Data_Training
| |-- HGG
| | |-- BraTS19_2013_10_1
| | | |-- BraTS19_2013_10_1_flair.nii.gz
| | | |-- BraTS19_2013_10_1_seg.nii.gz
| | | |-- BraTS19_2013_10_1_t1.nii.gz
| | | |-- BraTS19_2013_10_1_t1ce.nii.gz
| | | └── BraTS19_2013_10_1_t2.nii.gz
| | |-- BraTS19_2013_11_1
| | └── ...
| |-- LGG
| | |-- BraTS19_2013_0_1
| | | |-- BraTS19_2013_0_1_flair.nii.gz
| | | |-- BraTS19_2013_0_1_seg.nii.gz
| | | |-- BraTS19_2013_0_1_t1.nii.gz
| | | |-- BraTS19_2013_0_1_t1ce.nii.gz
| | | └── BraTS19_2013_0_1_t2.nii.gz
| | |-- BraTS19_2013_15_1
| | └── ...
| |── name_mapping.csv
| └── survival_data.csv
|-- nnUNet
| └── 3d_fullres
| └── Task043_BraTS2019
| └── nnUNetTrainerV2__nnUNetPlansv2.mlperf.1
| |-- fold_1
| | |-- debug.json
| | |-- model_best.model
| | |-- model_best.model.pkl
| | |-- model_final_checkpoint.model
| | |-- model_final_checkpoint.model.pkl
| | |-- postprocessing.json
| | |-- progress.png
| | |-- training_log_2020_5_25_19_07_42.txt
| | |-- training_log_2020_6_15_14_50_42.txt
| | └── training_log_2020_6_8_08_12_03.txt
| └── plans.pkl
└── joblog.log
步骤3:运行测试¶
数据前处理¶
export nnUNet_raw_data_base=build
python3 Task043_BraTS_2019.py --downloaded_data_dir=build/MICCAI_BraTS_2019_Data_Training/
python3 preprocess.py --model_dir=build/nnUNet/3d_fullres/Task043_BraTS2019/nnUNetTrainerV2__nnUNetPlansv2.mlperf.1 --raw_data_dir=build/nnUNet_raw_data/Task043_BraTS2019/imagesTr --preprocessed_data_dir=build/preprocessed_data
性能测试¶
For topsinference performance
python3 run.py --scenario=[Offline|SingleStream|MultiStream|Server] --backend=topsinference --model=model/3dunetbrats-mlperf-op13-fp32-N.onnx --model_dir=build/nnUNet/3d_fullres/Task043_BraTS2019/nnUNetTrainerV2__nnUNetPlansv2.mlperf.1 --preprocessed_data_dir=build/preprocessed_data
精度测试¶
For topsinference accuracy
python3 run.py --scenario=[Offline|SingleStream|MultiStream|Server] --backend=topsinference --accuracy --model=model/3dunetbrats-mlperf-op13-fp32-N.onnx --model_dir=build/nnUNet/3d_fullres/Task043_BraTS2019/nnUNetTrainerV2__nnUNetPlansv2.mlperf.1 --preprocessed_data_dir=build/preprocessed_data
结果¶
性能和精度信息将会打印在控制台上,形式如下:
TestScenario.<SCENARIO> qps=<QPS>, mean=<MEAN_LATENCY>, time=<TOTAL_TIME>, acc=<ACCURACY>, queries=<QUERY_NUM>, tiles=<LATENCY_TILES>
详细日志会输出到 build/logs
。
精度指标¶
device |
mean |
whole tumor |
tumor core |
enhancing tumor |
---|---|---|---|---|
CPU float32 |
85.30% |
91.41% |
86.79% |
77.70% |
GCU fp32+fp16 mixed precision |
85.30% |
91.41% |
86.79% |
77.70% |
RNN-Transducer使用示例¶
目录¶
mlcommons_inference/speech_recognition/rnnt
步骤¶
步骤1:安装软件包¶
安装topsInference
以及loadgen
包
pip3 install --force-reinstall mlperf_loadgen-1.1-<python version>-linux_x86_64.whl
pip3 install --force-reinstall TopsInference-<date version>-<python version>-none-any.internal.whl
# for examples
# pip3 install --force-reinstall mlperf_loadgen-1.1-cp36-cp36m-linux_x86_64.whl
# pip3 install --force-reinstall TopsInference-2.2.20230209-py3.6-none-any.internal.whl
安装rnnt
所需要的其他相关包
pip3 install -r requirements.txt
安装sox
音频处理库
apt install sox
步骤2:准备预训练模型¶
在model_zoo
下载rnnt
推理所需要的3个预训练模型的onnx
模型
mkdir onnx
cd onnx
# 将对应的onnx文件放置到该文件夹中
cd ..
步骤3:准备数据集¶
使用的数据集为LibriSpeech_dev_clean
,下载及解压参照下述的命令
wget https://openslr.magicdatatech.com/resources/12/dev-clean.tar.gz
tar -zxvf ./dev-clean.tar.gz
解压后会出现LibriSpeech
文件夹,目录结构参考如下:
./LibriSpeech
├── BOOKS.TXT
├── CHAPTERS.TXT
├── dev-clean
├── LICENSE.TXT
├── README.TXT
└── SPEAKERS.TXT
步骤4:环境准备¶
设置对应的文件夹路径等
work_dir=./work_dir
local_data_dir=$work_dir/local_data
librispeech_download_dir=./LibriSpeech
mkdir -p $local_data_dir
步骤5:数据预处理¶
根据脚本对Librispeech-dev-clean
进行预处理,拿到对应的wav
文件和json
文件
python pytorch/utils/convert_librispeech.py --input_dir ./LibriSpeech/dev-clean --dest_dir $local_data_dir/dev-clean-wav --output_json $local_data_dir/dev-clean-wav.json
步骤6:运行测试¶
PerformanceOnly模式¶
scenario=SingleStream
backend=topsinference
log_dir=${work_dir}/${scenario}_${backend}
python run.py --backend $backend --dataset_dir $local_data_dir --manifest $local_data_dir/dev-clean-wav.json --pytorch_config_toml ./pytorch/configs/rnnt.toml --scenario $scenario --log_dir $log_dir
AccuracyOnly模式¶
log_dir=${work_dir}/${scenario}_${backend}_accuracy
backend=topsinference
python run.py --backend $backend --dataset_dir $local_data_dir --manifest $local_data_dir/dev-clean-wav.json --pytorch_config_toml ./pytorch/configs/rnnt.toml --scenario [SingleStream|Offline|Server] --log_dir $log_dir --accuracy
Pytorch测试¶
backend=pytorch
scenario=SingleStream
log_dir=${work_dir}/${scenario}_${backend}
python run.py --backend pytorch --dataset_dir $local_data_dir --manifest $local_data_dir/dev-clean-wav.json --pytorch_config_toml ./pytorch/configs/rnnt.toml --scenario $scenario --log_dir $log_dir --accuracy
结果¶
性能与精度信息将会打印在控制台上,如下所示:
Word Error Rate: 7.477056979864259%, accuracy=92.52294302013574%
参考精度¶
Device |
Backend |
Wer |
Accuracy |
---|---|---|---|
CPU |
Pytorch |
7.4 |
92.5 |
GCU |
TopsInference |
7.4 |
92.5 |