deepgram / kur

Descriptive Deep Learning
Apache License 2.0
814 stars 107 forks source link

What is required in order to contribute to kur development? #20

Closed EmbraceLife closed 7 years ago

EmbraceLife commented 7 years ago

Hi Adam, I think being able to contribute to kur code is not only very cook but also useful to my journey in deep learning. I wonder what is the efficient learning path from a kur user to a kur developer?

a little of my background: I have taken several Coursera machine learning certificates, and doing Udacity deep learning foundation nanodegree, so I know some ML and DL with python. However, I am only at the level of using them with simple projects.

I have time and willing to give a lot of effort in deep learning with kur. Could you give me some suggestions on how to move from where I am to becoming a kur developer?

Thanks a lot Daniel

scottstephenson commented 7 years ago

The best place to start is by adding more Examples! Come up with an example you would like to see (maybe you saw an architecture you like in a paper you've read?) and we can help you build it. Once it is tested, then add to Kur!

EmbraceLife commented 7 years ago

Though I like to learn to contribute to kur code, but I can start with contributing examples. Thanks for your suggestions!

ajsyp commented 7 years ago

You point out that you would like to contribute to Kur code; that's great! I think that trying to construct different examples is a great place to start exactly because it will help you figure out where to contribute in the code. For example, you might realize, "Oh! This example would be great if we could add layer X." Perfect---now you have a concrete reason to try implementing layer X in code (example: seq-2-seq type layers). Or maybe you'll realize that some field of ML likes to store their data in format F, so you can write an example from that domain showing how to use F, and then proceed to write a new data supplier for F.

So start by brainstorming something like that---a data supplier or new layer---which you feel would be great to see in Kur. Then write up the Kurfile to make sure it looks elegant and easy to understand. Then start coding! The great thing about this approach is that:

  1. You can couch it in terms of a real-world need, which always helps with motivating yourself (and others).
  2. You can start contributing in "bite-size" chunks (like layers or suppliers), which will give you an opportunity to start getting a feel for Kur developing, and helping you decide where to contribute next.
EmbraceLife commented 7 years ago

This is a very encouraging suggestion! Thank you so much!!! I will try to come up with something simple to start with :)