Sample autogenerated report¶
This section contains a CI sample report for running inference on a compiled model.
The CI is set up as follows:
Environment: Github Actions
Task: dog and cat breeds classification based on the Oxford-IIIT Pet Dataset,
Training framework: TensorFlow,
Compiler framework: TVM,
Target: CPU (using LLVM target on TVM).
Pet Dataset classification using TVM-compiled TensorFlow model¶
Commands used¶
Note
This section was generated using:
python -m kenning.__main__ \
optimize \
test \
--modelwrapper-cls \
kenning.modelwrappers.classification.tensorflow_pet_dataset.TensorFlowPetDatasetMobileNetV2 \
--dataset-cls \
kenning.datasets.pet_dataset.PetDataset \
--measurements \
./build/local-cpu-tvm-tensorflow-classification.json \
--compiler-cls \
kenning.optimizers.tvm.TVMCompiler \
--runtime-cls \
kenning.runtimes.tvm.TVMRuntime \
--model-path \
kenning:///models/classification/tensorflow_pet_dataset_mobilenetv2.h5 \
--model-framework \
keras \
--target \
llvm \
--compiled-model-path \
./build/compiled-model.tar \
--opt-level \
3 \
--save-model-path \
./build/compiled-model.tar \
--target-device-context \
cpu \
--dataset-root \
./build/PetDataset/ \
--inference-batch-size \
1 \
--verbosity \
INFO
python -m kenning.__main__ \
report \
--report-path \
docs/source/generated/local-cpu-tvm-tensorflow-classification.md \
--report-name \
Pet Dataset classification using TVM-compiled TensorFlow model \
--root-dir \
docs/source/ \
--img-dir \
docs/source/generated/img \
--report-types \
performance \
classification \
--measurements \
build/local-cpu-tvm-tensorflow-classification.json \
--smaller-header
General information for build.local-cpu-tvm-tensorflow-classification.json¶
Model framework:
tensorflow ver. 2.11.1
Input JSON:
{
"dataset": {
"type": "kenning.datasets.pet_dataset.PetDataset",
"parameters": {
"classify_by": "breeds",
"image_memory_layout": "NHWC",
"dataset_root": "build/PetDataset",
"inference_batch_size": 1,
"download_dataset": true,
"force_download_dataset": false,
"external_calibration_dataset": null,
"split_fraction_test": 0.2,
"split_fraction_val": null,
"split_seed": 1234
}
},
"model_wrapper": {
"type": "kenning.modelwrappers.classification.tensorflow_pet_dataset.TensorFlowPetDatasetMobileNetV2",
"parameters": {
"model_path": "/home/runner/.kenning/models/classification/tensorflow_pet_dataset_mobilenetv2.h5",
"model_name": null
}
},
"runtime": {
"type": "kenning.runtimes.tvm.TVMRuntime",
"parameters": {
"save_model_path": "build/compiled-model.tar",
"target_device_context": "cpu",
"target_device_context_id": 0,
"runtime_use_vm": false,
"disable_performance_measurements": false
}
},
"data_converter": {
"type": "kenning.dataconverters.modelwrapper_dataconverter.ModelWrapperDataConverter",
"parameters": {}
},
"optimizers": [
{
"type": "kenning.optimizers.tvm.TVMCompiler",
"parameters": {
"model_framework": "keras",
"target": "llvm",
"target_microtvm_board": null,
"target_host": null,
"zephyr_header_template": null,
"zephyr_llext_source_template": null,
"opt_level": 3,
"libdarknet_path": "/usr/local/lib/libdarknet.so",
"compile_use_vm": false,
"output_conversion_function": "default",
"conv2d_data_layout": "",
"conv2d_kernel_layout": "",
"use_fp16_precision": false,
"use_int8_precision": false,
"use_tensorrt": false,
"dataset_percentage": 0.25,
"compiled_model_path": "build/compiled-model.tar",
"location": "host"
}
}
]
}
Inference performance metrics for build.local-cpu-tvm-tensorflow-classification.json¶
Inference time¶
First inference duration (usually including allocation time): 0.0772689959999866,
Mean: 0.07414182949727942 s,
Standard deviation: 0.0004556641245918454 s,
Median: 0.07417165050000563 s.
Average CPU usage¶
Mean: 54.43104096989966 %,
Standard deviation: 4.300358809890916 %,
Median: 54.55 %.
Memory usage¶
Mean: 9.672408026755853 %,
Standard deviation: 0.045255359472544644 %,
Median: 9.7 %.
Inference quality metrics for build.local-cpu-tvm-tensorflow-classification.json¶
Accuracy: 0.9578231292517007
Top-5 accuracy: 0.9959183673469387
Mean precision: 0.9591048246905213
Mean sensitivity: 0.9572500515056033
G-mean: 0.9563343851604948