\

Although most of us are exclaiming why is DL so good? It excels in accuracy when training with large amounts of data. In recent years, with the development of deep learning algorithms, many deep learning frameworks have emerged, each of which has its own strengths and characteristics. Here are 10 of the most popular deep learning frameworks for 2019.

\

TensorFlow

\

Google’s Tensorflow is arguably the most popular deep learning framework available today. Gmail, Uber, Airbnb, Nvidia and many other well-known brands use it. TF is the mainstream framework of deep learning at present. Tensorflow has the following features:

  • TensorFlow supports a variety of programming languages including Python, JavaScript, C ++, Java and Go, C # and Julia.
  • TF not only has a powerful computing cluster, it can also run models on mobile platforms such as iOS and Android.
  • TF programming is difficult to get started. Beginners need to carefully consider the architecture of the neural network and properly evaluate the dimensions and quantity of input and output data.
  • TF uses static computation diagrams to operate. That is, we need to define the graph first, then run the calculation, and if we need to make architectural changes, we retrain the model. This approach was chosen to improve efficiency, but many modern neural network tools are able to consider improvements in the learning process without significantly slowing down learning. In this regard, TensorFlow’s main competitor is PyTorch.

TensorFlow advantages:

  • It is ideal for creating and experimenting with deep learning architectures that facilitate data integration, such as input graphs, SQL tables, and images.
  • The fact that it’s supported by Google means that the model isn’t going to be thrown away anytime soon, so it’s worth investing time in learning it.

PyTorch

\

The main framework for deep learning after Tensorflow is PyTorch. The PyTorch framework was developed by Facebook and is already used by companies such as Twitter and Salesforce. PyTorch basic features:

  • Unlike TensorFlow, the PyTorch library operates with dynamically updated graphics. This means that it can change the architecture in the process.
  • In PyTorch, you can use a standard debugger, such as PDB or PyCharm.

PyTorch advantages:

  • The process of training a neural network is straightforward. PyTorch also supports data parallelism and distributed learning models, and includes many pre-trained models.

  • PyTorch is better suited for small projects and prototyping.

     

Sonnet

\

Sonnet deep learning framework is based on TensorFlow. It is DeepMind’s way of creating neural networks with complex architectures. Sonnet features:

  • Object-oriented libraries that are more abstract when developing neural networks (NN) or other machine learning (ML) algorithms.
  • The idea for Sonnet is to construct primary Python objects that correspond to specific parts of a neural network. In addition, these objects are independently connected to compute TensorFlow diagrams. Separating the process of creating objects and associating them with graphs simplifies high-level architecture design.

Sonnet advantages:

  • Sonnet’s main advantage is that it can be used to reproduce the research presented in DeepMind papers more easily than Keras, because the DeepMind paper models were built using Sonnet.

\

Keras

\

Keras is a machine learning framework that is great for learning if you have a lot of data and/or you want to get started on deep learning quickly. Keras is a high-level integration APi for TensorFlow that can be easily integrated with TensorFlow. This is a library that I highly recommend studying. Keras basic features:

  • In addition to Tensorflow, Keras is a high-level API for other popular libraries such as Theano and CNTK.
  • It is easier to create large-scale deep learning models in Keras, but the Keras framework environment configuration is a bit more complex than other underlying frameworks.

Keras advantages:

  • Keras is the best deep learning framework for anyone just getting started. It is ideal for learning and prototyping simple concepts and for understanding the nature of various models and learning processes.
  • Keras is a compact API. Can quickly help you create applications.
  • The code in Keras is more readable and concise.
  • Keras model serialization/deserialization APIS, callbacks, and data flows using Python generators are very mature.

By the way, TensorFlow compares with Keras:

PS: Tensorflow is at the bottom of the framework: this is the same as MXNet, Theano, PyTorch, etc. Includes implementing mathematical operations such as generalized matrix-matrix multiplication and neural network primitives such as convolution operations.

Keras is in a highly integrated framework. While it is easier to create models, it may not be as good as TensorFlow when dealing with complex network structures.

\

MXNet

MXNet is a highly scalable deep learning tool that can be used on a variety of devices. Although it does not appear to be widely used compared to TensorFlow, the growth of MXNet may be enhanced by becoming an Apache project. MXNet features:

  • The framework supports multiple languages such as C ++, Python, R, Julia, JavaScript, Scala, Go, and even Perl.
  • Parallel computing can be done very efficiently on multiple Gpus and many machines.

MXNet advantages:

  • Support for multiple Gpus (with optimized computing and fast context switching)
  • Clean and easy to maintain code (Python, R, Scala, and other apis)
  • The ability to solve problems quickly (critical for deep learning novices like me)

Although it is not as popular as TF, MXNet is well documented and easy to use, with the ability to choose between imperative and symbolic programming styles, making it an ideal choice for beginners and experienced engineers.

\

GLUON

\

Gluon is a better deep learning framework for creating complex models. GLUON basic features:

  • Gluon is special in having a flexible interface that simplifies prototyping, building and training deep learning models without sacrificing speed of learning.
  • Gluon is based on MXNet and provides a simple API to simplify the creation of deep learning models.
  • Like PyTorch, the Gluon framework supports the use of dynamic charting in conjunction with high-performance MXNet. From this perspective, Gluon looks like a very interesting alternative to Keras for distributed computing.

GLUON advantages:

  • In Gluon, you can define neural networks using simple, clear, and concise code.
  • It combines training algorithms and neural network models to provide flexibility in the development process without sacrificing performance.
  • Gluon can define dynamic neural network models, which means they can be built dynamically, using any structure, and using any of Python’s native control flows.

SWIFT

\

When you hear Swift, you’re probably thinking about app development for iOS or MacOS. But if you’re studying deep learning, you’ve probably heard of Swens for Tensorflow. By integrating directly with a general-purpose programming language, Swift for TensorFlow can express more powerful algorithms in ways never before possible. SWIFT basic features:

  • Differentiable custom data structures can be easily obtained.
  • Next generation API. The new API, acquired through practice and research, is easier to use and more powerful.
  • Building on TensorFlow, the Swift API provides you with direct calls to all of the underlying TensorFlow operators.
  • Programming tools based on Jupyter, LLDB, or Swift in Colab increase your productivity.

SWIFT advantages:

  • If a dynamic language is not suitable for your task, then this is a good choice. When you’ve been training for a few hours and your program encounters a type error, use Swift, a statically typed language. You will see where the code is wrong.

\

Chainer

\

Until the advent of CMU’s DyNet and Facebook’s PyTorch, Chainer was the leading neural network framework for dynamic computational graphs, or networks, that allowed input data to be of inconsistent length. Chainer basic Features:

  • Chainer code, written in pure Python on top of the Numpy and CuPy libraries, was the first framework to use a dynamic architectural model.

Chainer advantages:

  • Chainer was significantly faster than other Python-oriented frameworks by its own benchmarks, and TensorFlow was the slowest of the test groups that included MxNet and CNTK.
  • Better GPU and GPU data center performance than TensorFlow. Chainer recently became the global champion in GPU data center performance.

DL4J

Those who use Java or Scala should be aware of DL4J (short for Deep Learning for Java). Basic features of DL4J:

  • Neural network training in DL4J is performed by iterative parallel computation of clusters.
  • This process is supported by the Hadoop and Spark architectures.
  • Using Java allows you to use it in your application development cycle for Android devices.

DL4J advantages:

  • If you’re looking for a good Java deep learning framework, this is a great platform.

\

ONNX

\

The ONNX project was born out of Microsoft and Facebook to find open formats for deep learning models. ONNX simplifies the process of transferring models between different ways in which AI works. Thus ONNX has the advantages of various deep learning frameworks. ONNX features:

  • ONNX enables models to be trained in one framework and moved to another for reasoning. The ONNX model is currently supported in Caffe2, Microsoft Cognitive Toolkit, MXNet and PyTorch, as well as connectors for many other common frameworks and libraries.

ONNX advantages:

  • ONNX is a good choice for PyTorch developers. But for those who like TensorFlow, Keras et al might be better.

conclusion

So which deep learning framework should you use? Here are a few suggestions:

  • If you’re just starting out, the best choice is Keras.
  • For research purposes, select PyTorch.
  • For production, you need to pay attention to the environment. So for Google Cloud, the best choice is TensorFlow for AWS – MXNet and Gluon.
  • Android developers should pay attention to D4LJ; for iOS, Core ML breaks a similar task scope.
  • Finally, ONNX will help solve the problem of interaction between different frameworks.

\

reference

Towardsdatascience.com/top-10-best…

\

\

Hot recommended in Python create WeChat robot in Python robot to monitor WeChat group chat in Python for cameras and real-time control face open source project | beautification LeetCode warehouse is recommended in Python Python Chinese community’s several kind of public service, announced notice | Python Chinese Community award for articles \

\

Click to become a registered member of the community ** “Watching” **