These two days have not been prepared for this week's content, in fact, I am not idle, but by another thing attracted attention. Today I saw a day mxnet document, a little notes, a little harvest, notes will be posted in another essay.
This article I want to compare Theano and Mxnet,torch (Torch basically useless, so can only say some intuitive feeling). I care about them mainly from the following aspects:
1. Learning framework cost, interface design and other ease-of-use aspects.
The learning cost of three frames seems to me to be
Theano>torch>mxnet
Because torch the underlying language is LUA, a python-like and JS scripting language, familiar with Python or JS students should be very easy to learn (but I will not scripting language), but after all, Lua is a relatively small language, So for the majority of people still need to spend a certain amount of learning costs, because I really do not have much contact, so I can only feel to rank it in the second. For me just from Theano to Mxnet, the first feeling is that programming is easy, to give a very simple example, in Theano, define a symbolic scalar also need to check the document vector corresponding to what, the matrix corresponds to what (it is very uncomfortable), The corresponding symbolic variable in mxnet has only one method. Just part of the Theano symbolic scalar type, which can cause great inconvenience when used by a beginner.
One of the most important reasons why I think mxnet is the easiest to learn is that although the mxnet is implemented by C + +, it provides multiple language interfaces such as Python,lua,r,go and JS (which recently appeared to be joined to the JVM language Scala interface), This makes it possible for people with different languages to quickly use the mxnet without having to cross a language gap. That's why I think Mxnet is the easiest to get started.
2. The extent of Community activity in the framework, accessibility
First, let's take a look at the three frames on GitHub on the star and fork number:
Then the contribution heat map:
Of the three frames, the oldest is the number of Theano, the frame appears the longest time, the contribution heat is also stable. Torch is the most star in the three, but the contribution is not very high, mxnet is a new framework, the framework of the contribution of the enthusiasm is very strong, some recent models can be found (today there is a new 14 years of a relatively new neural language model). Therefore, three frames Theano and Troch have been relatively stable, but also a large number of paper experiments are based on two frameworks, Mxnet appeared shortly, but the community enthusiasm is high, some of the forefront of algorithms and models have mxnet implementation version.
3. Framework performance and Scalability
Of the three frameworks, Theano and torch support only stand-alone versions, mxnet support for distribution, and Mxnet also emphasize the ability to use on multiple devices. From this point of view, Theano and torch are more suitable for research, and Mxnet is likely to be applied to the actual production environment like Google's TensorFlow.
The left and right two graphs compare the operating speed of mxnet and torch and Torch and Theano respectively, although this is only a comparison under the feature example, it can be clearly seen that torch and mxnet combine GPU-accelerated computing with a higher ability than Theano.
This is my comparison of these three frameworks, purely personal humble opinion, each framework has its own advantages and disadvantages, the actual use of which framework depends entirely on the situation of individuals, I hope that I can provide a little more help.
A simple comparison between Mxnet,theano and torch