Beginners Guide to Contributing

Hi,
I really want to be able to help out on this project and other DL edge frameworks, but I need some guidance on where to start.

I understand a lot of the theory and have built some networks in Keras and TensorFlow, trained many in TensorFlow and Caffe and converted a lot of networks and deployed them with CoreML, Qualcomm sNPE, NCSDK, MACE and now played with TVM.ai, NCNN is on my list to check out.

It seems that the biggest problem with all of these edge optimiser systems is their lack of support for certain operations in the latest and greatest networks. For example MobileNet SSD or RNN’s in particular are difficult.

Can anyone show me a pathway to understanding how to begin doing that work, because I have the interest and the time.

Are there any good tutorials on showing how to take say a TensorFlow protobuf and convert it by hand to another format? How to implement a custom operation in C++ and use it in a DL framework?

I would love to see some easier or toy examples just so I can see what I need to dig into to be able to contribute here.

I see there are some great tutorials on the TVM.ai website on how to do various things but they seem a little too deep for where I am at.

Does anyone have any kind of advice at all on what or where I can go to learn / find this info? I am not afraid of getting my hands dirty!

I suspect maybe there are others like me who are just 1 or 2 steps away from being able to contribute to this more low level stuff because we don’t know where to start.

Any help would be greatly appreciated! :slightly_smiling_face:

Madhava

I think you could play from one simple Tensorflow or another front end model to start. See here: https://docs.tvm.ai/tutorials/index.html#compile-deep-learning-models

YES! Do not start from TVM backend, just start from NNVM front end. You should run it and modify code to verify your thought. You should try to know what happened from Tensorflow Model -> NNVM Graph -> TOP -> TOPI -> Targets… You even could from just one layer of convolution Tensorflow model to start. After this, you could deep graph optimization / TVM operator optimization and so on.

1 Like

Hi FrozenGene, thanks for the tip. That is good advice. I will try to create some simple Neural Networks with TF and then see how the conversion process goes.