Open springkim opened 7 years ago
Is there batch normalization layer in your network?
@cha-zhang Actually.. I don't know exactly. I just use Examples/Image/Detection/FasterRCNN/run_faster_rcnn.py to train.
Then BN should not be the issue. I believe part of the region proposal layer is currently only implemented in C++, and that's why you got the error.
I'm labeling this as a feature request, so we can track this.
This is the same as what I was asking about at the end of 2234. The native proposal layer really needs a GPU implementation to be useful.
Is there any timeline update on GPU support for the FCNN proposal layer? I understand there are many competing priorities, but at least knowing if it's not planned to be implemented in the near future would be useful so I know whether to wait or look for another solution. Thank you!
I would also like an update on this feature. Really could use GPU support on this without writing a klunky python wrapper. Any plans for this? Thanks, Brant
Any news about GPU implementation for Proposal Layer Lib native c++ ?
I found a temporary (or maybe not so temporary) and quick solution for the problem (I don't have time now to implement the real GPU version). Taking into account that the proposal layer for inference consists only in applying regression coefficients and doing NMS, it is not so useful to have it implemented in GPU. The real problem is that with this limitation all the processing is done on CPU. I avoided the problem, by transferring the process on CPU only for proposal layer, and then returning back on GPU computing. Let me know if someone is interested in more details. regards
..understand passed some time...if someone is still interested on FRCNN GPU support
@sigfrid696 , that could be helpful. Is this feature available in a NuGet package?
I updated my branch frcnn-gpu https://github.com/sigfrid696/CNTK/tree/frcnn-gpu I don't use NuGet packages... FRCNN is not fully executed on GPU, only NMS part has great performance benefits from GPU and is executed on that device. The rest of the processing remains on CPU: the mixed CPU/GPU support is managed directly on the proposal layer. Now a c++ inference app using proposal layer can be executed on GPU without the original proposal layer exception
I found a temporary (or maybe not so temporary) and quick solution for the problem (I don't have time now to implement the real GPU version). Taking into account that the proposal layer for inference consists only in applying regression coefficients and doing NMS, it is not so useful to have it implemented in GPU. The real problem is that with this limitation all the processing is done on CPU. I avoided the problem, by transferring the process on CPU only for proposal layer, and then returning back on GPU computing. Let me know if someone is interested in more details. regards
If you want to use the original proposal layer, you can still do it, I added an API method SupportedDevice
to check if a device is supported on User Defined Routine: if this is not the case, the framework copies the input data on the supported device, then it copies back the output on original device. The procedure is applied if the user defined function (i.e. proposal layer) return false from the API method.
This was my first try to use proposal layer in the context of an app running on GPU
I made a complete code for FasterRCNN evaluator by C++. Of course i used CNTK.GPU version from Nuget.
It works fine only on CPU.....(elapsed time is 11s) But It fails if i use GPU
CNTK::DeviceDescriptor::GPUDevice(0);
. This is error message.Is it not support GPU version c++ evaluator?