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