5 ms·
I see from the MTCNN code that this repo (like all others I've seen) is still bouncing tensors between GPU and CPU while passing between the P/R/ONets. So many
by briggers 7y ago
I see from the MTCNN code that this repo (like all others I've seen) is still bouncing tensors between GPU and CPU while passing between the P/R/ONets.
So many ML repos make this mistake in pre/post-processing and end up bottlenecked on CPU.
Anyone know of an MTCNN that's been ported to run more or less fully on GPU? (Or even that does batching instead of an image-by-image approach?)
- cetra3 7y agoI have used this before: https://github.com/blaueck/tf-mtcnn https://github.com/blaueck/tf-mtcnn which uses tensorflow for all the xNets. Example in rust: https://cetra3.github.io/blog/face-detection-with-tensorflow-rust/ https://cetra3.github.io/blog/face-detection-with-tensorflow...
- timesler 7y agoI'm not aware of any implementation with these features, but they are both on the roadmap for the linked repo. Both should also be achievable. Batch processing, in particular, will be a straight-forward change and should result in quite a speed-up. Although it will require the input images to have the same dimensions.
- briggers 7y agoGood stuff. In my experience inputs to MTCNN tend to be full frames, so the uniform dimension requirement is usually met.