Libraries & Frameworks

From
Jump to: navigation, search

YouTube ... Quora ...Google search ...Google News ...Bing News

A library and a framework are both code written by someone else that help you solve common problems in easier ways. However, they differ in how they control the flow of your application.

  • A library is a collection of functions or classes that you can call from your own code to perform specific tasks. For example, if you want to manipulate strings, you can use a library that provides string functions. You are in charge of when and where to use the library functions. Some examples of AI-related libraries are TensorFlow, Theano, and PyTorch.
  • A framework is a set of rules or guidelines that define the structure and behavior of your application. For example, if you want to build a web application, you can use a framework that provides templates, routing, authentication, etc. The framework calls your code at certain points, following the inversion of control principle. Some examples of AI-related frameworks are Angular, Vue, and Microsoft CNTK.

The main difference between a library and a framework is who is in control: you control the library, but the framework controls you.


With pages at Primo.ai or not included in Wikipedia Deep learning comparison chart below

Jeremy Howard: Deep Learning Frameworks - TensorFlow, PyTorch, fast.ai | AI Podcast Clips
This is a clip from a conversation with Jeremy Howard from Aug 2019. New full episodes every Mon & Thu and 1-2 new clips or a new non-podcast video on all other days.

Deep Learning Frameworks 2019
Siraj Raval Which deep learning framework should you use? In this video I'll compare 10 deep learning frameworks across a wide variety of metrics. PyTorch, TensorFlow, MXNet, Chainer, CNTK, Sonnet, DeepLearning4J, CoreML, ONNX, we've got a lot to cover in this video! Using code, programmatic features, and theory, I'll navigate this field ultimately coming to some clear conclusions. Enjoy!

Deep learning software by name

Software Creator Software licenseTemplate:Efn Open source Platform Written in Interface OpenMP support OpenCL support CUDA support Parallel execution (multi node) Automatic differentiation<ref>Template:Cite arXiv</ref> Has pretrained models Recurrent nets Convolutional nets RBM/DBNs Metal support
roNNie.ai Kevin Lok MIT Template:Yes Linux, macOS, Windows Python Python Template:Yes Template:Yes Template:Yes Template:Yes
BigDL Jason Dai Apache 2.0 Yes Apache Spark Scala Scala, Python Template:No Template:Yes Template:Yes Template:Yes
Caffe / Caffe2 Berkeley Vision and Learning Center Template:Free Template:Yes Linux, macOS, Windows<ref>Template:Cite web</ref> C++ Python, MATLAB, C++ Template:Yes Template:Depends Template:Yes Template:Yes Template:Yes<ref>Template:Cite web</ref> Template:Yes Template:Yes Template:No Template:Dunno
Deeplearning4j Skymind engineering team; Deeplearning4j community; originally Adam Gibson Template:Free Template:Yes Linux, macOS, Windows, Android (Cross-platform) C++, Java Java, Scala, Clojure, Python (Keras), Kotlin Template:Yes Template:Depends<ref>Template:Cite web</ref> Template:Yes<ref>Template:Cite web</ref><ref>Template:Cite web</ref> Template:Yes Template:Yes<ref>Template:Cite web</ref> Template:Yes Template:Yes Template:Yes Template:Yes<ref>Template:Cite web</ref>
Chainer Preferred Networks Template:Free Template:Yes Linux, macOS, Windows Python Template:No Template:No<ref>https://github.com/chainer/chainer/pull/2717</ref><ref>https://github.com/chainer/chainer/issues/99</ref> Template:Yes Template:Yes Template:Yes Template:Yes Template:Yes
Darknet Joseph Redmon Template:Free Template:Yes Cross-Platform C C, Python Template:Yes Template:No<ref>https://github.com/pjreddie/darknet/issues/127</ref> Template:Yes Template:Yes
Dlib Davis King Template:Free Template:Yes Cross-Platform C++ C++ Template:Yes Template:No Template:Yes Template:Yes Template:Yes Template:Yes Template:Yes Template:Yes Template:Yes
DataMelt (DMelt) S.Chekanov Template:Free Template:Yes Cross-Platform Java Java Template:No Template:No Template:No Template:No Template:No Template:No Template:No Template:No Template:No
DyNet Carnegie Mellon University Template:Free Template:Yes Linux, macOS, Windows C++, Python Template:No<ref>https://github.com/clab/dynet/issues/405</ref> Template:Yes Template:Yes Template:Yes
Intel Data Analytics Acceleration Library Intel Template:Free Template:Yes Linux, macOS, Windows on Intel CPU<ref name="intel-daal">Intel® Data Analytics Acceleration Library (Intel® DAAL) | Intel® Software</ref> C++, Python, Java C++, Python, Java<ref name="intel-daal"/> Template:Yes Template:No Template:No Template:Yes Template:No Template:Yes Template:Yes
Intel Math Kernel Library Intel Template:Proprietary Template:No Linux, macOS, Windows on Intel CPU<ref>Intel® Math Kernel Library (Intel® MKL) | Intel® Software</ref> C<ref>Deep Neural Network Functions</ref> Template:Yes<ref>Using Intel® MKL with Threaded Applications | Intel® Software</ref> Template:No Template:No Template:Yes Template:No Template:Yes<ref name="intel-benchmark">Intel® Xeon Phi™ Delivers Competitive Performance For Deep Learning—And Getting Better Fast | Intel® Software</ref> Template:Yes<ref name="intel-benchmark"/> Template:No
Keras François Chollet Template:Free Template:Yes Linux, macOS, Windows Python Python, R Template:Depends Template:Depends Template:Yes Template:Yes Template:Yes<ref>https://keras.io/applications/</ref> Template:Yes Template:Yes Template:Yes Template:Yes<ref>Does Keras support using multiple GPUs? · Issue #2436 · fchollet/keras</ref>
MATLAB + Neural Network Toolbox MathWorks Template:Proprietary Template:No Linux, macOS, Windows C, C++, Java, MATLAB MATLAB Template:No Template:No Template:Yes<ref>Template:Cite web</ref> Template:No Template:Yes<ref name="NNT">Template:Cite web</ref><ref>Template:Cite web</ref> Template:Yes<ref name="NNT"/> Template:Yes<ref name="NNT"/> Template:Yes<ref name="NNT"/> Template:Yes<ref>Template:Cite web</ref>
Microsoft Cognitive Toolkit Microsoft Research Template:Free<ref>Template:Cite web</ref> Template:Yes Windows, Linux<ref name="Setup CNTK on your machine">Template:Cite web</ref> (macOS via Docker on roadmap) C++ Python (Keras), C++, Command line,<ref>Template:Cite web</ref> BrainScript<ref>Template:Cite web</ref> (.NET on roadmap<ref>Template:Cite web</ref>) Template:Yes<ref>Template:Cite web</ref> Template:No Template:Yes Template:Yes Template:Yes<ref>https://github.com/Microsoft/CNTK/issues/140#issuecomment-186466820</ref> Template:Yes<ref name="cntk.ai">Template:Cite web</ref> Template:Yes<ref name="cntk.ai" /> Template:Yes Template:Yes<ref>Template:Cite web</ref>
Apache MXNet Apache Software Foundation Template:Free Template:Yes Linux, macOS, Windows,<ref>Template:Cite web</ref><ref>Template:Cite web</ref> AWS, Android,<ref>Template:Cite web</ref> iOS, JavaScript<ref>Template:Cite web</ref> Small C++ core library C++, Python, Julia, Matlab, JavaScript, Go, R, Scala, Perl Template:Yes Template:Depends<ref>Template:Cite web</ref> Template:Yes Template:Yes<ref>https://mxnet.readthedocs.io/</ref> Template:Yes<ref>Template:Cite web</ref> Template:Yes Template:Yes Template:Yes Template:Yes<ref>Template:Cite web</ref>
Neural Designer Artelnics Template:Proprietary Template:No Linux, macOS, Windows C++ Graphical user interface Template:Yes Template:No Template:No Template:Dunno Template:Dunno Template:No Template:No Template:No Template:Dunno
OpenNN Artelnics Template:Free Template:Yes Cross-platform C++ C++ Template:Yes Template:No Template:Yes Template:Dunno Template:Dunno Template:No Template:No Template:No Template:Dunno
PlaidML Vertex.AI AGPL3 Template:Yes Linux, macOS, Windows C++, Python Keras, Python, C++, C Template:No Template:Yes Template:Yes Template:Yes Template:Yes Template:Yes Template:Yes Template:Dunno Template:Yes
PyTorch Adam Paszke, Sam Gross, Soumith Chintala, Gregory Chanan Template:Free Template:Yes Linux, macOS, Windows Python, C, CUDA Python Template:Yes Template:Depends<ref>https://github.com/hughperkins/pytorch-coriander</ref><ref>https://github.com/pytorch/pytorch/issues/488</ref><ref>https://github.com/pytorch/pytorch/issues/488#issuecomment-273626736</ref> Template:Yes Template:Yes Template:Yes Template:Yes Template:Yes Template:Yes
Apache SINGA Apache Incubator Template:Free Template:Yes Linux, macOS, Windows C++ Python, C++, Java Template:No Template:No Template:Yes Template:Dunno Template:Yes Template:Yes Template:Yes Template:Yes Template:Yes
TensorFlow Google Brain team Template:Free Template:Yes Linux, macOS, Windows,<ref>https://developers.googleblog.com/2016/11/tensorflow-0-12-adds-support-for-windows.html</ref> Android C++, Python, CUDA Python (Keras), C/C++, Java, Go, R<ref>Template:Citation</ref>, Julia Template:No Template:Depends<ref name="tensorflow-roadmap">Template:Cite web</ref> but already with SYCL<ref name="GitHub">Template:Cite web</ref> support Template:Yes Template:Yes<ref>https://www.tensorflow.org/</ref> Template:Yes<ref>https://github.com/tensorflow/models</ref> Template:Yes Template:Yes Template:Yes Template:Yes
TensorLayer Hao Dong Template:Free Template:Yes Linux, macOS, Windows,<ref>https://developers.googleblog.com/2016/11/tensorflow-0-12-adds-support-for-windows.html</ref> Android C++, Python, Python Template:No Template:Depends<ref name="tensorflow-roadmap">Template:Cite web</ref> but already with SYCL<ref name="GitHub">Template:Cite web</ref> support Template:Yes Template:Yes<ref>https://www.tensorflow.org/</ref> Template:Yes<ref>https://github.com/tensorflow/models</ref> Template:Yes Template:Yes Template:Yes Template:Yes
Theano Université de Montréal Template:Free Template:Yes Cross-platform Python Python (Keras) Template:Yes Template:Depends Template:Yes Template:Yes<ref>https://deeplearning.net/software/theano/library/gradient.html</ref><ref>https://groups.google.com/d/msg/theano-users/mln5g2IuBSU/gespG36Lf_QJ</ref> Template:Depends Template:Yes Template:Yes Template:Yes Template:Yes<ref>Using multiple GPUs — Theano 0.8.2 documentation</ref>
Torch Ronan Collobert, Koray Kavukcuoglu, Clement Farabet Template:Free Template:Yes Linux, macOS, Windows,<ref>https://github.com/torch/torch7/wiki/Windows</ref> Android,<ref>Template:Cite web</ref> iOS C, Lua Lua, LuaJIT,<ref>Template:Cite web</ref> C, utility library for C++/OpenCL<ref name=jtorch>Template:Cite web</ref> Template:Yes Template:Depends Template:Yes<ref>Template:Cite web</ref><ref>Template:Cite web</ref> Template:Yes Template:Yes<ref>Template:Cite web</ref> Template:Yes Template:Yes Template:Yes Template:Yes<ref>https://github.com/torch/torch7/wiki/Cheatsheet#distributed-computing--parallel-processing</ref>
Wolfram Mathematica Wolfram Research Template:Proprietary Template:No Windows, macOS, Linux, Cloud computing C++, Wolfram Language, CUDA Wolfram Language Template:Yes Template:No Template:Yes Template:Yes Template:Yes<ref>https://resources.wolframcloud.com/NeuralNetRepository</ref> Template:Yes Template:Yes Template:Yes Template:Depends
VerAI VerAI Template:Proprietary Template:No Linux, Web-based C++,Python, Go, Angular Graphical user interface, cli Template:No Template:No Template:Yes Template:Yes Template:Yes Template:Yes Template:Yes Template:Yes Template:Yes