* [Docs][PyOV] update python snippets * first snippet * Fix samples debug * Fix linter * part1 * Fix speech sample * update model state snippet * add serialize * add temp dir * CPU snippets update (#134) * snippets CPU 1/6 * snippets CPU 2/6 * snippets CPU 3/6 * snippets CPU 4/6 * snippets CPU 5/6 * snippets CPU 6/6 * make module TODO: REMEMBER ABOUT EXPORTING PYTONPATH ON CIs ETC * Add static model creation in snippets for CPU * export_comp_model done * leftovers * apply comments * apply comments -- properties * small fixes * rempve debug info * return IENetwork instead of Function * apply comments * revert precision change in common snippets * update opset * [PyOV] Edit docs for the rest of plugins (#136) * modify main.py * GNA snippets * GPU snippets * AUTO snippets * MULTI snippets * HETERO snippets * Added properties * update gna * more samples * Update docs/OV_Runtime_UG/model_state_intro.md * Update docs/OV_Runtime_UG/model_state_intro.md * attempt1 fix ci * new approach to test * temporary remove some files from run * revert cmake changes * fix ci * fix snippet * fix py_exclusive snippet * fix preprocessing snippet * clean-up main * remove numpy installation in gha * check for GPU * add logger * iexclude main * main update * temp * Temp2 * Temp2 * temp * Revert temp * add property execution devices * hide output from samples --------- Co-authored-by: p-wysocki <przemyslaw.wysocki@intel.com> Co-authored-by: Jan Iwaszkiewicz <jan.iwaszkiewicz@intel.com> Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>
45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
# Copyright (C) 2018-2023 Intel Corporation
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
#! [dataset]
|
|
import nncf
|
|
import torch
|
|
|
|
calibration_loader = torch.utils.data.DataLoader(...)
|
|
|
|
def transform_fn(data_item):
|
|
images, _ = data_item
|
|
return images
|
|
|
|
calibration_dataset = nncf.Dataset(calibration_loader, transform_fn)
|
|
#! [dataset]
|
|
|
|
#! [quantization]
|
|
import torchvision
|
|
model = torchvision.models.resnet50(pretrained=True)
|
|
|
|
quantized_model = nncf.quantize(model, calibration_dataset)
|
|
#! [quantization]
|
|
|
|
#! [inference]
|
|
import openvino as ov
|
|
from openvino.tools.mo import convert_model
|
|
|
|
input_fp32 = ... # FP32 model input
|
|
|
|
# export PyTorch model to ONNX model
|
|
onnx_model_path = "model.onnx"
|
|
torch.onnx.export(quantized_model, input_fp32, onnx_model_path)
|
|
|
|
# convert ONNX model to OpenVINO model
|
|
ov_quantized_model = convert_model(onnx_model_path)
|
|
|
|
# compile the model to transform quantized operations to int8
|
|
model_int8 = ov.compile_model(ov_quantized_model)
|
|
|
|
res = model_int8(input_fp32)
|
|
|
|
# save the model
|
|
ov.serialize(ov_quantized_model, "quantized_model.xml")
|
|
#! [inference]
|