TensorFlow is a popular open source AI framework that is feature-rich and comes with many tools, libraries, pre-packaged models, and more. However, it’s not the only game in town. If an enterprise decides to develop an AI stack in-house on corporate infrastructure using another framework, there are plenty of open source frameworks available to choose from. Some of them geared toward deep learning, others are strong contenders for image classification systems, and so on.
PyTorch, Scikit-learn, and Caffe are great alternatives to TensorFlow and quite popular. Facebook, the developer of PyTorch is on a journey to beef up the ecosystem surrounding its creation. The number of tools, modules, libraries, and integrations continues to grow. The PyTorch stack, if you will is illustrated below.
On the other hand, Scikit-learn is an excellent choice for data analysis and data mining. That comes in very handy in the data preparation and feature engineering process. Best of all, it leverages NumPy, one of the most popular scientific computing libraries around, supporting multi-dimensional arrays, known as Numpy arrays.
If an organization is heavily vested in Apache Spark and the Hadoop ecosystem, then Spark MLib is a good choice. Or if the AI development team of a company is highly skilled in Lua and LuaJIT, then Torch is available. Torch predates PyTorch and it has a large support community. Here is a list of 10 open source AI frameworks.
10 Open Source AI Frameworks
Framework | Language | Type | Notes |
---|---|---|---|
Accord.Net | C++ | Classification, regression, and clustering | Audio and image processing, computer vision, and more |
Apache Mahout | Java / Scala | Distributed linear algebra framework | For mathematicians, statistcians, and data scientist who create their own algorithms |
Caffe | C++ | Deep Learning | Switch between GPU and CPU. Large community. Used for image classification, speach, and multimedia. |
Keras | Python | Deep Learning | High-level API. Very popular. Tight integration with TensorFlow and CNTK |
MLPack | C++ | "Swiss army knife" of methods and functions | Supports a wide array of methods like NeighborSearch, K-Means, RangeSearch... |
PyTorch | Python | Dynamic neural nets and Tensor computation | Developed by Facebook. Growing ecosystem of modules. |
Scikit-learn | Python | Classification, regression, and clustering | Data mining and data analysis. Built on SciPy, NumPy, and motplotlib |
Spark MLib | Java, Scala, Python, and R | Classification, regression, clustering, and more | Uses Spark Core. 9x faster than Mahout. Used for ML pipelines |
Torch | Lua / LuaJIT | Deep Learning | Supports multi-dimensional arrays and GPU's. Computer vision, image classification, audio, and video |
Theano | Python | Used to evaluate mathematical expressions | Integrated with NumPy. Leverages multi-dimensional arrays and GPU's |