This is a creation in Article, where the information may have evolved or changed.
Most people who have used the go language recognize it as a very good productivity tool, and some have summed up the following advantages:
Simple deployment
Good concurrency
Good language design
Good execution performance
There are also many successful projects that have been developed using the go language, including: NSQ, Docker, Packer, Skynet, Doozer, Heka, Cbfs, Tsuru, Groupcache, God, Gor, etc. In view of its successful experience, there are developers who want to use the go language to develop machine learning projects. Now there is good news that there are more and more projects to choose from for machine learning developers who want to use the go language as a development platform, though not much.
Instead of using libraries written in other programming languages (mostly C/S/C + +), developers can now work directly with toolkits written entirely in the go language . The existing machine learning database in other languages has many users and its own culture, but many people are also interested in the convenience of using the Go language tools.
Let's take a look at some of the major go language machine learning projects:
Golearn is a machine learning library that calls itself " built-in battery " and is definitely one of the preferences.
The author mentions in the project description-- concise, easy customization is the goal that it pursues . The data processing methods used by some interfaces in Golearn and Scikit-learn (a very popular Python machine learning project) are very similar. Users who want to escape from Python should be able to do some short-term work with it. There are also a number of linear model repositories using C + +, but the rest are all written in go language. The Golearn implements a familiar Scikit-learn adaptation/prediction interface that enables rapid predictive testing and switching. Golearn is a mature project that provides cross-validation and training/testing and other ancillary functions.
GOML's self-proclaimed " Online Golang machine learning tool ", according to its developers, "contains a number of tools that allow you to learn the data content of their channels online." "This project is highlighted because it emphasizes the possibility of its being part of other applications, making it easier to build" comprehensive testing, large volumes of documentation, and concise, efficient, modular source code. " But what if you need the knowledge to solve the underlying two-dollar classification problem (is it spam?) ), you might be better off using Hector, the smaller database.
The newest branch (or, to some extent, the most interesting) is Gorgonia.
This machine learning library is written entirely in go language, and its developer "CHEWXY" provides the necessary conditions for dynamic building of neural networks and related algorithms . ”
The key is " dynamic ". Like previous machine learning Library Theano, Gorgonia allows you to describe the behavior of a neural network using higher-order terms in a series of original repositories. The TensorFlow database is also used in this way, allowing developers to no longer have to write algorithms themselves or to submit projects that can be reused in different projects.
Why use the Go language to write this machine learning project Gorgonia?
"One of the reasons I wrote Gorgonia was that I spent too much time trying to deploy Theano in the cloud (about two years ago)," the developer said in an interview. ”
summary: a pure Go language solution, which means that fewer parts need to be packaged and blended together from other authoring languages. But the main advantage of having these go language repositories is not the deployment, but the convenience of the developers. Future machine learning developers will have a variety of development languages to choose from, and it also means that today's go language developers can be a little easier if they want to move to a machine learning expert.