Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
import os
config = calibration.CommandLineReader.read()
calibrator = calibration.CalibratorFactory.create(config.precision, calibration.CalibratorConfiguration(config))
print("Collecting original network statistics for {}...".format(config.model))
fp32_result = calibrator.infer(add_outputs=True, collect_aggregated_statistics=True)
print("Original network accuracy: {0:.4f}%".format(100.0 * fp32_result.metrics.accuracy))
output_model_file_path = \
os.path.splitext(config.model)[0] + ("_{}_statistics_without_ignored.xml".format(config.precision.lower()) if
config.ignore_layer_names else
"_{}_statistics.xml".format(config.precision.lower()))
output_weights_file_path = utils.Path.get_weights(output_model_file_path)
quantization_levels = \
calibrator.get_quantization_levels(calibration.CalibrationConfigurationHelper.read_ignore_layer_names(config))
statistics = fp32_result.aggregated_statistics.get_node_statistics()
calibrator.save(output_model_file_path, output_weights_file_path, quantization_levels, statistics)
print("Network with statistics was written to {}.(xml|bin) IR file".format(os.path.splitext(output_model_file_path)[0]))
def collect_statistics():
with CommandLineProcessor.process() as configuration:
calibrator = CalibratorFactory.create(configuration.precision, CalibratorConfiguration(configuration))
print("Collecting FP32 statistics for {}...".format(configuration.model))
fp32_result = calibrator.infer(add_outputs=True, collect_aggregated_statistics=True)
print("FP32 accuracy: {0:.4f}{1}".format(fp32_result.metrics.accuracy.value, fp32_result.metrics.accuracy.symbol))
output_model_file_path = Path.get_model(configuration.output_model, "_statistics")
output_weights_file_path = Path.get_weights(configuration.output_weights, "_statistics")
quantization_levels = calibrator.get_quantization_levels(CalibrationConfigurationHelper.read_ignore_layer_names(configuration))
statistics = fp32_result.aggregated_statistics.get_node_statistics()
calibrator.save(output_model_file_path, output_weights_file_path, quantization_levels, statistics)
print("Network with statistics was written to {}.(xml|bin) IR file".format(os.path.splitext(output_model_file_path)[0]))