performance improvements for yolo based networks,significant reduction in inference time can be seen yolo4tiny ,yolo4 and minor reduction in inference time can be seen in yolo4_berkeley_f1 and yolo4_berkeley - tested with a batchsize of 1 and 2 and on gtx 1070,it is possible that the performance improvement is more signficant in newer hardware
This commit is contained in:
@@ -93,7 +93,7 @@ public:
|
|||||||
nvinfer1::IPluginV2Layer* convert_layer(nvinfer1::ITensor *input, Region *l);
|
nvinfer1::IPluginV2Layer* convert_layer(nvinfer1::ITensor *input, Region *l);
|
||||||
nvinfer1::ILayer* convert_layer(nvinfer1::ITensor *input, Shortcut *l);
|
nvinfer1::ILayer* convert_layer(nvinfer1::ITensor *input, Shortcut *l);
|
||||||
nvinfer1::IPluginV2Layer* convert_layer(nvinfer1::ITensor *input, Yolo *l);
|
nvinfer1::IPluginV2Layer* convert_layer(nvinfer1::ITensor *input, Yolo *l);
|
||||||
nvinfer1::IPluginV2Layer* convert_layer(nvinfer1::ITensor *input, Upsample *l);
|
nvinfer1::IResizeLayer* convert_layer(nvinfer1::ITensor *input, Upsample *l);
|
||||||
nvinfer1::ILayer* convert_layer(nvinfer1::ITensor *input, DeformConv2d *l);
|
nvinfer1::ILayer* convert_layer(nvinfer1::ITensor *input, DeformConv2d *l);
|
||||||
|
|
||||||
#if NV_TENSORRT_MAJOR > 5 && NV_TENSORRT_MAJOR < 8
|
#if NV_TENSORRT_MAJOR > 5 && NV_TENSORRT_MAJOR < 8
|
||||||
|
|||||||
+15
-2
@@ -504,6 +504,11 @@ ILayer* NetworkRT::convert_layer(ITensor *input, Activation *l) {
|
|||||||
checkNULL(lRT);
|
checkNULL(lRT);
|
||||||
return lRT;
|
return lRT;
|
||||||
}
|
}
|
||||||
|
else if(l->act_mode == CUDNN_ACTIVATION_ELU || l->act_mode == ACTIVATION_ELU){
|
||||||
|
IActivationLayer *lRT = networkRT->addActivation(*input,ActivationType::kELU);
|
||||||
|
checkNULL(lRT);
|
||||||
|
return lRT;
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
FatalError("this Activation mode is not yet implemented");
|
FatalError("this Activation mode is not yet implemented");
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -690,8 +695,9 @@ IPluginV2Layer* NetworkRT::convert_layer(ITensor *input, Yolo *l) {
|
|||||||
return lRT;
|
return lRT;
|
||||||
}
|
}
|
||||||
|
|
||||||
IPluginV2Layer* NetworkRT::convert_layer(ITensor *input, Upsample *l) {
|
IResizeLayer* NetworkRT::convert_layer(ITensor *input, Upsample *l) {
|
||||||
//std::cout<<"convert Upsample\n";
|
|
||||||
|
#if NV_TENSORRT_MAJOR < 8
|
||||||
auto creator = getPluginRegistry()->getPluginCreator("UpSample_tkDNN","1");
|
auto creator = getPluginRegistry()->getPluginCreator("UpSample_tkDNN","1");
|
||||||
std::vector<PluginField> mPluginAttributes;
|
std::vector<PluginField> mPluginAttributes;
|
||||||
PluginFieldCollection mFC{};
|
PluginFieldCollection mFC{};
|
||||||
@@ -705,6 +711,13 @@ IPluginV2Layer* NetworkRT::convert_layer(ITensor *input, Upsample *l) {
|
|||||||
auto *lRT = networkRT->addPluginV2(&input, 1, *plugin);
|
auto *lRT = networkRT->addPluginV2(&input, 1, *plugin);
|
||||||
checkNULL(lRT);
|
checkNULL(lRT);
|
||||||
return lRT;
|
return lRT;
|
||||||
|
#else
|
||||||
|
auto *lRT = networkRT->addResize(*input);
|
||||||
|
lRT->setResizeMode(ResizeMode::kNEAREST);
|
||||||
|
lRT->setOutputDimensions(Dims3{l->output_dim.c, l->output_dim.h, l->output_dim.w});
|
||||||
|
checkNULL(lRT);
|
||||||
|
return lRT;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
ILayer* NetworkRT::convert_layer(ITensor *input, DeformConv2d *l) {
|
ILayer* NetworkRT::convert_layer(ITensor *input, DeformConv2d *l) {
|
||||||
|
|||||||
Reference in New Issue
Block a user