Go does not have much traction in ML and for good reasons: * not a single one organization or company is backing Go ML projects * with exception couple papers, no research in neither computer vision, NLP, or RL is done in Go, no papers are implemented in Go. It is mostly Pytorch these days. * Go language does not support: multi-dimensional indexing; N-dimensional arrays; operator overloading; short lambda notation — all these are loved by data science and machine learning community since it makes life a lot easier for them, but not in Go * Go support for GPU is not good * Go compiler does not support optimizations like SIMD — so even CPU intense workloads are not as performant * Go calls to C can be made, but "cgo is not go" and benefits of Go deteriorate quickly with this approach — so a lot of ML code in C can not be really efficient with Go * Audio / Video / Image / Spatial data is not supported well in Go (just try to run OpenCV in Go, likely it will be either IPC or cgo...) * Many ML related libraries are supported by a single person or already deprecated or highly unstable or experimental
Is there way forward? Writing experimentation, data visualization, data wrangling, modeling, training in Go is shooting yourself in the foot. I already tried this myself once for porting Julia code. I would not believe any single DS or ML person would use Go seriously for these purposes. However, there is a niche that Go may fit — tabular data (your backend data model) + inference. Which means, ML model is developed and *trained* in say Python/Julia/R but then ported to Go and loaded trained model artifacts. I recently wrote https://github.com/nikolaydubina/go-featureprocessing as a first step in that direction and more work will follow up. Here is what ML there is in Go at the moment: * https://github.com/josephmisiti/awesome-machine-learning#go * https://github.com/avelino/awesome-go#machine-learning On Monday, December 28, 2020 at 2:11:37 AM UTC+8 ren...@ix.netcom.com wrote: > I think you might be better off learning AI/ML using Python - to > understand the concepts - most tutorials use Python/Colab as well since it > is so easy. > > Once you understand the concepts you can use Go libraries > <https://pkg.go.dev/github.com/tensorflow/tensorflow/tensorflow/go> to > implement the concepts in Go. > > On Dec 27, 2020, at 11:55 AM, Philip Chapman <pcha...@pcsw.us> wrote: > > I am an experienced developer and fairly knowledgeable in Go, but new to > AI and machine learning. I'd like to expand my skillset in that direction. > I would be happy for and recommendations and advice on good material for > learning AI and machine learning with Go. Most of the material out there > seems to be based on python, but I rather prefer Go. > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/CABEejsiZMjpTgbZx_7aGRdEcReyHYuk1eNe1WHOdHOdv6jsXFA%40mail.gmail.com > > <https://groups.google.com/d/msgid/golang-nuts/CABEejsiZMjpTgbZx_7aGRdEcReyHYuk1eNe1WHOdHOdv6jsXFA%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/f974314f-7458-4f64-9e94-fed3b850cc51n%40googlegroups.com.