From 63e437a49b0d0de9ed57408866ac307b9d35284b Mon Sep 17 00:00:00 2001 From: mpj123 <1941804034@qq.com> Date: Thu, 28 Nov 2024 14:11:37 +0800 Subject: [PATCH 1/2] Use the configuration of FP16 by default. --- yolo11/include/config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yolo11/include/config.h b/yolo11/include/config.h index 705a3211..7b30a674 100644 --- a/yolo11/include/config.h +++ b/yolo11/include/config.h @@ -1,6 +1,6 @@ -//#define USE_FP16 +#define USE_FP16 // #define USE_FP32 -#define USE_INT8 +// #define USE_INT8 const static char* kInputTensorName = "images"; const static char* kOutputTensorName = "output"; From 970781e0f068a24bbdbe32e787324dbd7b2f5fdd Mon Sep 17 00:00:00 2001 From: mpj123 <1941804034@qq.com> Date: Thu, 5 Dec 2024 14:28:30 +0800 Subject: [PATCH 2/2] Fix multi-batch problem in int8 quantization --- yolo11/src/model.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/yolo11/src/model.cpp b/yolo11/src/model.cpp index 8886bce5..daffc473 100644 --- a/yolo11/src/model.cpp +++ b/yolo11/src/model.cpp @@ -116,7 +116,7 @@ nvinfer1::IHostMemory* buildEngineYolo11Cls(nvinfer1::IBuilder* builder, nvinfer std::cout << "Your platform supports int8: " << (builder->platformHasFastInt8() ? "true" : "false") << std::endl; assert(builder->platformHasFastInt8()); config->setFlag(nvinfer1::BuilderFlag::kINT8); - auto* calibrator = new Int8EntropyCalibrator2(1, kClsInputW, kClsInputH, kInputQuantizationFolder, + auto* calibrator = new Int8EntropyCalibrator2(kBatchSize, kClsInputW, kClsInputH, kInputQuantizationFolder, "int8calib.table", kInputTensorName); config->setInt8Calibrator(calibrator); #endif @@ -392,8 +392,8 @@ nvinfer1::IHostMemory* buildEngineYolo11Det(nvinfer1::IBuilder* builder, nvinfer std::cout << "Your platform support int8: " << (builder->platformHasFastInt8() ? "true" : "false") << std::endl; assert(builder->platformHasFastInt8()); config->setFlag(nvinfer1::BuilderFlag::kINT8); - auto* calibrator = new Int8EntropyCalibrator2(1, kInputW, kInputH, kInputQuantizationFolder, "int8calib.table", - kInputTensorName); + auto* calibrator = new Int8EntropyCalibrator2(kBatchSize, kInputW, kInputH, kInputQuantizationFolder, + "int8calib.table", kInputTensorName); config->setInt8Calibrator(calibrator); #endif @@ -775,8 +775,8 @@ nvinfer1::IHostMemory* buildEngineYolo11Seg(nvinfer1::IBuilder* builder, nvinfer std::cout << "Your platform support int8: " << (builder->platformHasFastInt8() ? "true" : "false") << std::endl; assert(builder->platformHasFastInt8()); config->setFlag(nvinfer1::BuilderFlag::kINT8); - auto* calibrator = new Int8EntropyCalibrator2(1, kInputW, kInputH, kInputQuantizationFolder, "int8calib.table", - kInputTensorName); + auto* calibrator = new Int8EntropyCalibrator2(kBatchSize, kInputW, kInputH, kInputQuantizationFolder, + "int8calib.table", kInputTensorName); config->setInt8Calibrator(calibrator); #endif @@ -1066,8 +1066,8 @@ nvinfer1::IHostMemory* buildEngineYolo11Pose(nvinfer1::IBuilder* builder, nvinfe std::cout << "Your platform support int8: " << (builder->platformHasFastInt8() ? "true" : "false") << std::endl; assert(builder->platformHasFastInt8()); config->setFlag(nvinfer1::BuilderFlag::kINT8); - auto* calibrator = new Int8EntropyCalibrator2(1, kInputW, kInputH, kInputQuantizationFolder, "int8calib.table", - kInputTensorName); + auto* calibrator = new Int8EntropyCalibrator2(kBatchSize, kInputW, kInputH, kInputQuantizationFolder, + "int8calib.table", kInputTensorName); config->setInt8Calibrator(calibrator); #endif