From c2d73623e5eb3f99d2cb2aa83df91c4038bc135d Mon Sep 17 00:00:00 2001 From: Francesco Gatti Date: Wed, 15 Jan 2020 18:07:40 +0100 Subject: [PATCH 1/5] support clion --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 446d490..02f2a8e 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ build/ *.h5 *.tar.gz *.weights +.idea/ \ No newline at end of file From da4f24615741b1ab1a44dd550826e8da3ec7648e Mon Sep 17 00:00:00 2001 From: xavier Date: Wed, 15 Jan 2020 21:48:18 +0100 Subject: [PATCH 2/5] add DLA, plugin for shortcut and leaky. new verison 0.4 --- demo/demo/demo.cpp | 7 +++++++ include/tkDNN/Yolo3Detection.h | 3 +++ include/tkDNN/tkdnn.h | 2 +- src/NetworkRT.cpp | 22 ++++++++++++++++++---- src/Yolo3Detection.cpp | 2 ++ 5 files changed, 31 insertions(+), 5 deletions(-) diff --git a/demo/demo/demo.cpp b/demo/demo/demo.cpp index 3a9ef6e..ba08caa 100644 --- a/demo/demo/demo.cpp +++ b/demo/demo/demo.cpp @@ -97,6 +97,13 @@ int main(int argc, char *argv[]) { } std::cout<<"detection end\n"; + + + std::cout< detected; + // keep track of inference times (ms) + std::vector stats; + Yolo3Detection() {} virtual ~Yolo3Detection() {} diff --git a/include/tkDNN/tkdnn.h b/include/tkDNN/tkdnn.h index dde3126..554daa1 100644 --- a/include/tkDNN/tkdnn.h +++ b/include/tkDNN/tkdnn.h @@ -5,4 +5,4 @@ #include "Layer.h" #include "NetworkRT.h" -#define TKDNN_VERSION 300 +#define TKDNN_VERSION 400 diff --git a/src/NetworkRT.cpp b/src/NetworkRT.cpp index 7430b6f..d4fdf90 100644 --- a/src/NetworkRT.cpp +++ b/src/NetworkRT.cpp @@ -35,7 +35,7 @@ NetworkRT::NetworkRT(Network *net, const char *name) { builderRT = createInferBuilder(loggerRT); std::cout<<"Float16 support: "<platformHasFastFp16()<<"\n"; std::cout<<"Int8 support: "<platformHasFastInt8()<<"\n"; - //std::cout<<"DLAs: "<getNbDLACores()<<"\n"; + std::cout<<"DLAs: "<getNbDLACores()<<"\n"; networkRT = builderRT->createNetwork(); if(!fileExist(name)) { @@ -51,7 +51,6 @@ NetworkRT::NetworkRT(Network *net, const char *name) { dtRT = DataType::kHALF; builderRT->setHalf2Mode(true); } - /* if(net->dla && builderRT->getNbDLACores() > 0) { dtRT = DataType::kHALF; builderRT->setFp16Mode(true); @@ -59,7 +58,6 @@ NetworkRT::NetworkRT(Network *net, const char *name) { builderRT->setDefaultDeviceType(DeviceType::kDLA); builderRT->setDLACore(0); } - */ //add input layer ITensor *input = networkRT->addInput("data", DataType::kFLOAT, @@ -276,10 +274,19 @@ ILayer* NetworkRT::convert_layer(ITensor *input, Activation *l) { if(l->act_mode == ACTIVATION_LEAKY) { //std::cout<<"New plugin LEAKY\n"; + + /* + // plugin version IPlugin *plugin = new ActivationLeakyRT(); IPluginLayer *lRT = networkRT->addPlugin(&input, 1, *plugin); checkNULL(lRT); return lRT; + */ + + IActivationLayer *lRT = networkRT->addActivation(*input, ActivationType::kLEAKY_RELU); + lRT->setAlpha(0.1); + checkNULL(lRT); + return lRT; } else if(l->act_mode == CUDNN_ACTIVATION_RELU) { IActivationLayer *lRT = networkRT->addActivation(*input, ActivationType::kRELU); @@ -340,14 +347,21 @@ ILayer* NetworkRT::convert_layer(ITensor *input, Shortcut *l) { //std::cout<<"convert Shortcut\n"; //std::cout<<"New plugin Shortcut\n"; + ITensor *back_tens = tensors[l->backLayer]; + /* + // plugin version IPlugin *plugin = new ShortcutRT(); - ITensor **inputs = new ITensor*[2]; inputs[0] = input; inputs[1] = back_tens; IPluginLayer *lRT = networkRT->addPlugin(inputs, 2, *plugin); checkNULL(lRT); + */ + + IElementWiseLayer *lRT = networkRT->addElementWise(*input, *back_tens, ElementWiseOperation::kSUM); + checkNULL(lRT); + return lRT; } diff --git a/src/Yolo3Detection.cpp b/src/Yolo3Detection.cpp index ed392f7..869c792 100644 --- a/src/Yolo3Detection.cpp +++ b/src/Yolo3Detection.cpp @@ -94,6 +94,8 @@ void Yolo3Detection::update(cv::Mat &imageORIG) { netRT->infer(dim, input_d); TIMER_STOP dim.print(); + + stats.push_back(t_ns); } TIMER_START From 2f57ba122201a256e1853382b4aa7543c6faaa7d Mon Sep 17 00:00:00 2001 From: Francesco Gatti Date: Thu, 16 Jan 2020 18:21:34 +0100 Subject: [PATCH 3/5] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3b16ec3..6a0a7ff 100644 --- a/README.md +++ b/README.md @@ -49,3 +49,4 @@ this will genereate a yolo3_berkeley.rt file that can be used for live detection ./yolo3_demo # launch detection on a demo video ./yolo3_demo yolo3_berkeley.rt /dev/video0 # launch detection on device 0 ``` +![Demo preview](https://github.com/ceccocats/tkDNN/releases/download/v0.4/demo.gif) From 146e1442495919de5627b7e4f3ad2adbacd8943c Mon Sep 17 00:00:00 2001 From: Francesco Gatti Date: Thu, 16 Jan 2020 18:24:35 +0100 Subject: [PATCH 4/5] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6a0a7ff..3d956a5 100644 --- a/README.md +++ b/README.md @@ -49,4 +49,4 @@ this will genereate a yolo3_berkeley.rt file that can be used for live detection ./yolo3_demo # launch detection on a demo video ./yolo3_demo yolo3_berkeley.rt /dev/video0 # launch detection on device 0 ``` -![Demo preview](https://github.com/ceccocats/tkDNN/releases/download/v0.4/demo.gif) +![demo](https://user-images.githubusercontent.com/11562617/72547657-540e7800-388d-11ea-83c6-49dfea2a0607.gif) From 8a4d1cac17f14f14c7db6bf3402c10bc83faeccb Mon Sep 17 00:00:00 2001 From: luca <228618@studenti.unimore.it> Date: Mon, 20 Jan 2020 14:51:38 +0100 Subject: [PATCH 5/5] compile with tensorrt 5 --- src/NetworkRT.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/NetworkRT.cpp b/src/NetworkRT.cpp index d4fdf90..f27f70d 100644 --- a/src/NetworkRT.cpp +++ b/src/NetworkRT.cpp @@ -275,18 +275,18 @@ ILayer* NetworkRT::convert_layer(ITensor *input, Activation *l) { if(l->act_mode == ACTIVATION_LEAKY) { //std::cout<<"New plugin LEAKY\n"; - /* +#if NV_TENSORRT_MAJOR < 6 // plugin version IPlugin *plugin = new ActivationLeakyRT(); IPluginLayer *lRT = networkRT->addPlugin(&input, 1, *plugin); checkNULL(lRT); return lRT; - */ - +#else IActivationLayer *lRT = networkRT->addActivation(*input, ActivationType::kLEAKY_RELU); lRT->setAlpha(0.1); checkNULL(lRT); return lRT; +#endif } else if(l->act_mode == CUDNN_ACTIVATION_RELU) { IActivationLayer *lRT = networkRT->addActivation(*input, ActivationType::kRELU);