3 ms·
I wrote a lot of (and still occasionally maintain) a library called golearn [1] which tried to bring first-class support for the “traditional” ML algorithms, bu
by struct 7y ago
I wrote a lot of (and still occasionally maintain) a library called golearn [1] which tried to bring first-class support for the “traditional” ML algorithms, but it seems that Go’s compiler and toolchain just don’t optimise well enough for Go to be very competitive on performance for that application. That’s not a criticism of Go, it’s just that C/C++/FORTRAN have decades of optimising compiler support and most competing solutions are Python sugar over a nest of such C/C++/FORTRAN libraries. Go’s also concurrent, which is nice, but we found cases where being too concurrent also cost performance for most people. I’m still optimistic that Go has a place in ML, but it’s probably not right now.
[1] https://github.com/sjwitworth/golearn https://github.com/sjwitworth/golearn
- elmolino89 7y agoProper link: https://github.com/sjwhitworth/golearn https://github.com/sjwhitworth/golearn
- struct 7y agoApologies (I was on mobile!)
- nl 7y agoI do wonder if bridging to a good matrix/tensor library would be sufficient (as it is in Python). I'm aware of the interesting work happening in Swift/Tensorflow and was wondering what the equivalent in Go would look like.
- Intermernet 7y agoHave a look at gorgonia. https://github.com/gorgonia/gorgonia https://github.com/gorgonia/gorgonia
- chewxy 7y agoTo add to that, while Gorgonia's Tensor (https://github.com/gorgonia/tensor https://github.com/gorgonia/tensor) library is fairly mature, plenty of work can still be done. Gorgonia proper too has plenty of work to be done on improving the various VMs. Last, there is greenfield work to be done in making Gorgonia user friendlier