Simple analysis of the current mainstream deep learning framework

(Engineering related topics and depth learning framework)

There are behind any of the existing large software two kinds of fundamental factors: business factors and technical factors. It is both contradictory and unified.

Technically decided, and now any large-scale software development can not without the aid of existing code and product: the complexity of large software determines unless disregard all commercial activity, or in order to achieve full independence developing the entire system is impractical of.

Business decisions, and any software you want to profit, technically fundamental requirement is to have, throughout history software, can be maintained for more than 10 years of software is almost rare, which is able to occupy a monopoly position in the software technology undoubtedly top software.

So on the topic of deep learning framework and I will both analysis, combined with the contents of a simple analysis of engineering topics, how to choose the framework, how a deeper understanding of the framework.

Commercial deep learning framework :

Depth learning framework is the standard.

The software industry is to continue to develop, but the direction is indeed uncertain, and in some areas people seem to see the ceiling, and this is a huge blow to the industry in terms. So boom generated artificial intelligence is not surprising, but in the end be able to create a big market can not be determined, but some of the results of the field of artificial intelligence has indeed there is a huge commercial value, so who is able to grasp this direction, who is the next leader of an era. Then the value of the depth learning framework on the obvious, it is the goal of artificial intelligence industry standards, but also large companies must compete. In this competition we will see a lot of good products appear, but in the end only able to survive those fundamental framework to find direction. That is clearly understand the meaning of the standard. Commercial general who is able to build a good ecological, will be able to obtain a standard software, Microsoft is a typical example. The Eco-depth learning framework I think there are two: chip, data, and developers. Depth study of great power lies in the ability to upgrade hardware computing and led to the development of new architectures, and because the core algorithm is data-driven, so there is a huge demand for data, and the development of deep learning in order to drive the industry or soft industry's rapid development and the fundamental driving force is that developers can get more people involved, so that more people can achieve their goals in order to promote the development of eco fundamentally, and this framework there are several requests for the following:

1) In order to meet the requirements of the chip manufacturer chip, the framework must be met adapt to the new chip architecture and performance can greatly exert chip (not achieve the requirements of the underlying framework in accordance with conventional operation control of light weight, and to recalculation and light control).

2) The framework to be able to integrate with large databases, to be able to take full advantage of the performance of various databases, and database requirements of the new design (most of the previous data is structured rather than numerical, and learn a lot of depth with the traditional data format the data there is a difference), and large-scale data is a scarce resource, data extraction and data sharing is the key to the entire production chain. Able to grasp data, will assure lifeblood depth learning.

3) the developer must be friendly and be able to provide multi-lingual support, and not to introduce too many new concepts to reduce the cost of learning developers to reduce the amount of unnecessary project developers (easy to develop), and to be able to It offers many existing models and parameters to achieve (a nice deep learning model is difficult trained, so if you could provide an existing template, then the developers will have more time to achieve business).

Depth study of the technical framework:

First depth study of the underlying math and there is not much innovation, although still no good answers on a theoretical mathematical interpretability, but the engineering is concerned with many previous numerical no essential difference, but a huge amount of calculation but It is different from before.

Data, user-friendly, in fact, is to think about how we can meet the technical requirements of commercial appeal. But there is no perfect world of technology, there is no doctrine of engineering principles for any project is the only requirement is that the actual situation. So deep learning framework monopoly situation will not arise, because the technology is not allowed.

So for our developers, how to choose, how to understand, how to develop deep learning framework?

I mainly to three frames simple explanation:

1.TensorFlow

Google flagship works best framework deep learning in ecological construction to do. With Google 's powerful strength and team, can meet almost all major languages, a variety of chip has support, and Google is one of the world's largest data resource owner, the data area is a matter of course, almost perfectly compatible, so this section framework can say is I think now synonymous with the depth of learning, will also be the future mainstream.

But he has an obvious flaw is the code is too large, and now has close to 100 million lines, which means that developers want to modify the framework, you want to cut huge quantities of one thing, though Google developer community building good, too many learning resources, but compared with the lightweight frame, or too complicated, is not conducive to in-depth understanding of deep learning framework. So if you want to learn the source code to find the depth of learning, TensorFlow is definitely not a good choice.

2. Hard

"For human beings not machines designed API". Almost all the assessments, it is the second most popular framework. Keras to TensorFlow , Theano or CNTK for the underlying engine. This framework is the most beneficial to developers to quickly develop, but it's more of a nature API , rather than a frame, the difference lies in giving flexibility and scalability developers. For higher performance and more freedom of development, Keras support is not an ideal option, especially intelligent embedded products.

3.caffe

For those who want to truly understand the underlying principles of deep learning framework, from zero to truly achieve the developers in terms of a deep learning framework, Caffe almost the best choice, it is a lightweight deep learning framework, using c ++ to write the kernel, and provide a python interface. About its code, and offers many powerful tools, and now all the major deep learning framework has absorb nutrients from it here. Or caffe both realized the depth of the core learning framework, there is no big fuss over the details of the project, so I want to develop their own deep learning framework or want to understand how to optimize the performance of their own code, then the caffe is an ideal choice.

 

 

 

The above picture from the network

 

 

Guess you like

Origin www.cnblogs.com/KagariAtsuko/p/11615588.html