
Martin, BTW, have you heard of Keras Tensorflow or PyTorch? Kind regards, David Ndungu On Wed, Feb 20, 2019 at 3:19 PM David Njuguna <dnjuguna@gmail.com> wrote:
Martin,
I did spend months working with Keras + Tensorflow and there was a myriad of issues making that work with my Go software that requires extremely low latency and online training.
Let's talk after you have a few years of hands-on experience production building ML solutions and know the difference between academic and production quality software.
Thanks.
Kind regards, David Ndungu
On Wed, Feb 20, 2019 at 2:36 PM Martin Akolo Chiteri via skunkworks < skunkworks@lists.my.co.ke> wrote:
Hi David,
On Wed, Feb 20, 2019 at 11:24 AM David Njuguna via skunkworks < skunkworks@lists.my.co.ke> wrote:
I spent a good amount of time looking for an ML library written in Go, with a usable API and with active maintenance and the only framework out there is https://github.com/gorgonia/gorgonia which seems tailored to academics need.
ML is by and for academics and Statisticians [0] in particular. It is only starting to get used outside universities now because of the improvements of performance in Computing hardware [1] experienced in the recent past in my opinion. The statistical learning theory methods have been in existence since 1800s [2] though computing power had always been a physical limit to their success.
I wanted a library to embed I could use in a stealth startup I am working
on and frankly nothing came close to the quality I was looking for. In particular I wanted something with:
1. Ability to plug in different activation functions.
Scikit learn's (Python) module for Multi-layer perceptron's algorithms supports nearly all possible activation functions [3] available to nodes in an artificial neural network.
2. Takes advantage of Goroutines
3. Ability to import weights from other frameworks(TBD in Therfoo) 4. A high level API like Keras 5. A testable architecture
Have you used any of the libraries you sent?
No, I have not.
I would like to hear your experience working with any of them.
I have instead used Python ML libraries (Scikit-Learn) for building different models to predict residual values (market prices) of heavy construction equipment using historical data from equipment auctions and resales. All that was part of my research for my M.Sc thesis [4]
Perhaps I missed something...
If you cannot find an adequate ML library in Go, I would encourage you to go with those available in Python (Theano and / or Scikit-Learn) for your project if that is a feasible option. Perhaps you can deal with performance bottlenecks in future as the application scales up. Or maybe find out how to speed the app using different Python libraries to support multi-threading [5]. Another possibility might be to escape into C-mode in Python for the parts of your program that require high performance. Those are my opinions.
I am dog fooding Therfoo in a personal production product at the moment and love the ability of including ML capabilities with under 20 lines of code.
Thanks for your feedback.
You are welcome David
[0]: R for Statistical computing https://www.r-project.org/ [1]: Yoshua Bengio https://youtu.be/uawLjkSI7Mo [2]: Least Squares Method of regression analysis https://en.wikipedia.org/wiki/Regression_analysis#History [3]: Python's Sci-kit learn regression using neural networks https://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLP... [4]: https://era.library.ualberta.ca/items/71ce7a37-fad3-4e67-97af-912e82bad726/v... [5]: Green threads in Python https://greenlet.readthedocs.io/
Hope that helps.
Martin.
On Tue, Feb 19, 2019 at 22:16 Martin Akolo Chiteri via skunkworks < skunkworks@lists.my.co.ke> wrote:
Hi David,
Any specific reason you are implementing the Deep Learning module from Scratch? There are a couple in existence already, probably well executed and tested. Perhaps you could join those projects and work on bug fixes and enhancements instead ....
https://github.com/josephmisiti/awesome-machine-learning#go http://gopherdata.io/post/deeplearning_in_go_part_1/ https://medium.com/sourcedtech/machine-learning-on-go-code-829e85e2d2c6
Good luck in any case.
Martin.
On Mon, Feb 18, 2019 at 12:40 PM David Njuguna via skunkworks < skunkworks@lists.my.co.ke> wrote:
I am currently writing a deep learning Golang module/library - https://github.com/therfoo/therfoo and wondering if anyone here would be open to collaborating on the same?
Kind regards, David Ndungu
_______________________________________________ skunkworks mailing list skunkworks@lists.my.co.ke ------------ List info, subscribe/unsubscribe http://lists.my.co.ke/mailman/listinfo/skunkworks ------------
Skunkworks Rules http://my.co.ke/phpbb/viewtopic.php?f=24&t=94 ------------ Other services @ http://my.co.ke
_______________________________________________ skunkworks mailing list skunkworks@lists.my.co.ke ------------ List info, subscribe/unsubscribe http://lists.my.co.ke/mailman/listinfo/skunkworks ------------
Skunkworks Rules http://my.co.ke/phpbb/viewtopic.php?f=24&t=94 ------------ Other services @ http://my.co.ke
_______________________________________________ skunkworks mailing list skunkworks@lists.my.co.ke ------------ List info, subscribe/unsubscribe http://lists.my.co.ke/mailman/listinfo/skunkworks ------------
Skunkworks Rules http://my.co.ke/phpbb/viewtopic.php?f=24&t=94 ------------ Other services @ http://my.co.ke
_______________________________________________ skunkworks mailing list skunkworks@lists.my.co.ke ------------ List info, subscribe/unsubscribe http://lists.my.co.ke/mailman/listinfo/skunkworks ------------
Skunkworks Rules http://my.co.ke/phpbb/viewtopic.php?f=24&t=94 ------------ Other services @ http://my.co.ke