未验证 提交 cf68eafa 编写于 作者: L littletomatodonkey 提交者: GitHub

add cpp trt (#480)

上级 8fd56a45
...@@ -40,13 +40,16 @@ public: ...@@ -40,13 +40,16 @@ public:
const std::string &params_path, const bool &use_gpu, const std::string &params_path, const bool &use_gpu,
const int &gpu_id, const int &gpu_mem, const int &gpu_id, const int &gpu_mem,
const int &cpu_math_library_num_threads, const int &cpu_math_library_num_threads,
const bool &use_mkldnn, const int &resize_short_size, const bool &use_mkldnn, const bool &use_tensorrt,
const bool &use_fp16, const int &resize_short_size,
const int &crop_size) { const int &crop_size) {
this->use_gpu_ = use_gpu; this->use_gpu_ = use_gpu;
this->gpu_id_ = gpu_id; this->gpu_id_ = gpu_id;
this->gpu_mem_ = gpu_mem; this->gpu_mem_ = gpu_mem;
this->cpu_math_library_num_threads_ = cpu_math_library_num_threads; this->cpu_math_library_num_threads_ = cpu_math_library_num_threads;
this->use_mkldnn_ = use_mkldnn; this->use_mkldnn_ = use_mkldnn;
this->use_tensorrt_ = use_tensorrt;
this->use_fp16_ = use_fp16;
this->resize_short_size_ = resize_short_size; this->resize_short_size_ = resize_short_size;
this->crop_size_ = crop_size; this->crop_size_ = crop_size;
...@@ -68,6 +71,8 @@ private: ...@@ -68,6 +71,8 @@ private:
int gpu_mem_ = 4000; int gpu_mem_ = 4000;
int cpu_math_library_num_threads_ = 4; int cpu_math_library_num_threads_ = 4;
bool use_mkldnn_ = false; bool use_mkldnn_ = false;
bool use_tensorrt_ = false;
bool use_fp16_ = false;
std::vector<float> mean_ = {0.485f, 0.456f, 0.406f}; std::vector<float> mean_ = {0.485f, 0.456f, 0.406f};
std::vector<float> scale_ = {1 / 0.229f, 1 / 0.224f, 1 / 0.225f}; std::vector<float> scale_ = {1 / 0.229f, 1 / 0.224f, 1 / 0.225f};
......
...@@ -41,6 +41,9 @@ public: ...@@ -41,6 +41,9 @@ public:
this->use_mkldnn = bool(stoi(config_map_["use_mkldnn"])); this->use_mkldnn = bool(stoi(config_map_["use_mkldnn"]));
this->use_tensorrt = bool(stoi(config_map_["use_tensorrt"]));
this->use_fp16 = bool(stoi(config_map_["use_fp16"]));
this->cls_model_path.assign(config_map_["cls_model_path"]); this->cls_model_path.assign(config_map_["cls_model_path"]);
this->cls_params_path.assign(config_map_["cls_params_path"]); this->cls_params_path.assign(config_map_["cls_params_path"]);
...@@ -60,6 +63,9 @@ public: ...@@ -60,6 +63,9 @@ public:
bool use_mkldnn = false; bool use_mkldnn = false;
bool use_tensorrt = false;
bool use_fp16 = false;
std::string cls_model_path; std::string cls_model_path;
std::string cls_params_path; std::string cls_params_path;
......
...@@ -175,7 +175,7 @@ cmake .. \ ...@@ -175,7 +175,7 @@ cmake .. \
-DDEMO_NAME=clas_system \ -DDEMO_NAME=clas_system \
-DWITH_GPU=OFF \ -DWITH_GPU=OFF \
-DWITH_STATIC_LIB=OFF \ -DWITH_STATIC_LIB=OFF \
-DUSE_TENSORRT=OFF \ -DWITH_TENSORRT=OFF \
-DOPENCV_DIR=${OPENCV_DIR} \ -DOPENCV_DIR=${OPENCV_DIR} \
-DCUDNN_LIB=${CUDNN_LIB_DIR} \ -DCUDNN_LIB=${CUDNN_LIB_DIR} \
-DCUDA_LIB=${CUDA_LIB_DIR} \ -DCUDA_LIB=${CUDA_LIB_DIR} \
......
...@@ -183,7 +183,7 @@ cmake .. \ ...@@ -183,7 +183,7 @@ cmake .. \
-DDEMO_NAME=ocr_system \ -DDEMO_NAME=ocr_system \
-DWITH_GPU=OFF \ -DWITH_GPU=OFF \
-DWITH_STATIC_LIB=OFF \ -DWITH_STATIC_LIB=OFF \
-DUSE_TENSORRT=OFF \ -DWITH_TENSORRT=OFF \
-DOPENCV_DIR=${OPENCV_DIR} \ -DOPENCV_DIR=${OPENCV_DIR} \
-DCUDNN_LIB=${CUDNN_LIB_DIR} \ -DCUDNN_LIB=${CUDNN_LIB_DIR} \
-DCUDA_LIB=${CUDA_LIB_DIR} \ -DCUDA_LIB=${CUDA_LIB_DIR} \
......
...@@ -23,6 +23,13 @@ void Classifier::LoadModel(const std::string &model_path, ...@@ -23,6 +23,13 @@ void Classifier::LoadModel(const std::string &model_path,
if (this->use_gpu_) { if (this->use_gpu_) {
config.EnableUseGpu(this->gpu_mem_, this->gpu_id_); config.EnableUseGpu(this->gpu_mem_, this->gpu_id_);
if (this->use_tensorrt_) {
config.EnableTensorRtEngine(
1 << 20, 1, 3,
this->use_fp16_ ? paddle_infer::Config::Precision::kHalf
: paddle_infer::Config::Precision::kFloat32,
false, false);
}
} else { } else {
config.DisableGpu(); config.DisableGpu();
if (this->use_mkldnn_) { if (this->use_mkldnn_) {
......
...@@ -62,6 +62,7 @@ int main(int argc, char **argv) { ...@@ -62,6 +62,7 @@ int main(int argc, char **argv) {
Classifier classifier(config.cls_model_path, config.cls_params_path, Classifier classifier(config.cls_model_path, config.cls_params_path,
config.use_gpu, config.gpu_id, config.gpu_mem, config.use_gpu, config.gpu_id, config.gpu_mem,
config.cpu_math_library_num_threads, config.use_mkldnn, config.cpu_math_library_num_threads, config.use_mkldnn,
config.use_tensorrt, config.use_fp16,
config.resize_short_size, config.crop_size); config.resize_short_size, config.crop_size);
double elapsed_time = 0.0; double elapsed_time = 0.0;
......
...@@ -4,6 +4,8 @@ gpu_id 0 ...@@ -4,6 +4,8 @@ gpu_id 0
gpu_mem 4000 gpu_mem 4000
cpu_math_library_num_threads 10 cpu_math_library_num_threads 10
use_mkldnn 1 use_mkldnn 1
use_tensorrt 0
use_fp16 0
# cls config # cls config
cls_model_path /PaddleClas/inference/cls_infer.pdmodel cls_model_path /PaddleClas/inference/cls_infer.pdmodel
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册