I am currently working on using TensorRT for a modified version of Faster RCNN with a different ROI pooling layer. Because of this different ROI pooling layer, I need to make my own plugin and cannot use the one provided. However, I am really stuck on how to approach this.
Looking at the Faster RCNN sample, it appears that the RCNN plugin is created using a call to “createFasterRCNNPlugin”, which is nowhere to be found and probably part of pre-compiled files. Would it be possible to have more documentation/samples on how this ROI plugin is actually created?
Specifically, how should one go about “converting” a user-defined layer in Caffe, written in CUDA, to a plugin in TensorRT? Where does the plugin know how the layer is actually implemented and what it actually does? Basically, how does the actual runtime computation work in the enqueue() function? Would it be enough to just copy paste the cuda-written layer into the enqueue() function?
I would really appreciate any additional information on how to actually go back and forth between cuda/caffe user-defined layers and plugins, as this process is still very mysterious to me.