There’s a plethora of options available for the advanced developer out there, and looking at GitHub’s trends it doesn’t look like we’ve seen the peak of the AI and ML hype yet. And while experienced and seasoned developers might very well know of most of these tool-kits, we’re sure there’s still a few hidden gems out there for even the most advanced professionals.
And for the uninitiated and the aspiring programmers we’ve also collected some great tools. While there’s somewhat of a learning curve to get over in order to fully build machine learning applications, the amount of quality tutorials out there more than makes up for that.
This list contains the most useful tools, libraries and frameworks for machine learning purposes, and includes tool-kits and frameworks designed to be used by people in all levels of skill and experience. We’re constantly looking for exciting and new projects in this area, so please let us know of any library, script or framework we haven’t mentioned.
Originally developed by a team Google engineers working on another project, TensorFlow quickly grew into it’s own framework for building highly complex computations for machine learning projects in a number of sectors. Today it is one of the most widely used tool-kits out there, with thousands of active projects.
Keras is another serious contender for building most types of AI and ML applications, and while many people consider it as a competitor to TensorFlow, Keras can actually run on top of it, or other kits such as Theano. Applications can be run on both CPU’s and GPU’s, making Keras a great choice for most types of apps.
One of the most robust solutions on the market today, Amazon’s services are known as being reliable in general, and AML is no different. Especially for services and apps running on Amazon’s AWS cloud their machine learning kit can be integrated and deployed easily into both new and existing projects.
Caffe is being used extensively in the world of Python development, for various neural network applications, but the most common use is for image classifications and other deep learning vision projects.
An extremely popular library for Python, Theano has a very active community with plenty of libraries adding extra features to the already extensive list of options. This library can be used for most things AI.
A well documented C++ library for building machine learning algorithms and services. Used by many industrial leaders and various institutions around the world, Dlib has quickly become a popular framework.
Inspired by the classical and lovable robot, Marvin from Hitchhiker’s Guide to the Galaxy, this is a GPU-only framework capable of training models for various deep learning projects. There’s also a set of pre-trained models for beginners to learn the ropes before diving into more advanced features.
A great all-round library based on C++ which is particularly well suited for novices and people unfamiliar with machine learning. Due to the simplicity of mlpack, it is recommended by many as one of the first frameworks to look at when wanting to learn more about artificial intelligence and programming.
This project has almost 20 years of activity, being first developed in the late 1990’s. Since then there’s been an ever growing number of users and applications making use of Brainstorm, and it’s especially popular for EEG & MEG visualisation projects.
As the name, Hierarchical Temporal Memory, applies – this framework is built based on real life biology with regards to how the human brain works. In particular HTM is modeled on the neocortex that’s responsible for cognitive functions, sensory perceptions and basic language.
One of the absolutely most popular computer vision libraries, OpenCV powers many facial recognition applications, and is used extensively for various projects that in one way or another includes visual recognition in some form. There’s already a number of mobile app developers that have published apps with facial recognition on the various app stores.
From Stanford university comes protégé, an open source library with the philosophy of Ontology being incorporated into the design. Using the OWL 2 Web Ontology Language, protégé is suitable for both novices and experts alike, and the community is healthy and vibrant.
One of the largest and most widely adopted frameworks for Python, scikit-learn is used in just about every type of application that has to do with artificial intelligence and machine learning. Together with numpy and matlib, this can be an extremely efficient and effective free and open-source solution.
Apache is no slouch when it comes to ML. With a number of different projects and products under their umbrella, MLib is a part of Apache Spark, and is compliant with both Java, Scala, Python and Rust. For projects already running on an Apache Spark API, this is an extremely easy to implement set of functionality.
SystemML only recently made it into a standalone system, but since then things have taken off for the Apache owned previously incubated project. This new success must in part be attributed to the new possibility of running SystemML on a single node, or scale it up to large clusters with just a few simple settings changes.
For recurrent networks using GPU processing with CUDA, Torch is a very promising framework for various forms of neural networks. While it’s only possible to run on a GPU, there’s a huge community with hundreds of modules and plugins, and the core is stable, secure and robust.
One of the few C# frameworks on this list, AForge.NET is mainly used in academical and industrial scenarios, and thus not particularly recommended for beginning developers.
Another project inspired by nature itself, ai-one is designed to mimic some of the features of ontology, although the framework mentions using a lightweight ontology system for detecting relationships with or without human assistance.
Designed to be integrated into other solutions, ChatMapper offers a relatively easy way to implement intelligent chatbots, complete with a visual editor for easy of use and training models.
From none other than Microsoft, who recently set up a 5000 man strong AI research department, their Cognitive Toolkit is a true gem. An open-source framework that allows developers from all walks of life to quickly and easily set up deep learning algorithms.
This tool is designed to be used for data mining purposes primarily, with an extensive set of functions, methods and classes for classification, regression, clustering and more. Published under the open-source GNU license.
Recently discontinued due to issues with fragmentation, this framework is still on the list due to existing projects existing with these implementations. And while no official support or development is planned, it is possible to mail the developers and obtain a licensed copy.
Refactoring with machine learning has never been easier. Automated test generation with Diffblue makes test cases as easy as uploading the existing code, let Diffblue run it’s programs and with support for more advanced features such as exception testing, this tool can prove a valuable asset for many use cases.
Another project spearheaded by Microsoft, DMTK is a framework comprised of a number of extensions, each offering various features such as an interface for data parallelization, model algorithms, word embedding and much more.
As the name suggests, OpenNN is focused on integrating neural networks into an easy to use C++ framework. With unlimited layers and a non-linear processing algorithm, it’s possible to use this deep architecture with supervised learning.
From computer vision to understanding language naturally, Paddle is a platform for deep learning that’s extremely popular on GitHub. Based on Python, it also supports recommendation systems out of the box.
Shogun first saw the light of day way back in 1999. Since then programmers have used Shogun to develop an extensive range of applications using machine learning, from hobbyists to scientists. And with more than 7 different programming languages to choose from, it’s no wonder that Shogun is a popular choice.
The internet of things have recently been seeing a surge in adoption worldwide, and investments are following the same trend patterns. Wise.io aims to make it easier for people to implement machine learning using the Predix platform.
Mathematica has more than 30 years of development behind it’s core, and as such is one of the most mature and applicable applications out there today. But while the project itself is old and established, the features offered are cutting edge, and possibilities near endless.
Formerly known as API.ai, DialogFlow is an exceptional tool for building ChatBots and other similar applications. By simulating real life conversation, the framework handles both voice and text, and can be easily integrated with Google Assistant, Amazon Alexa & Facebook Messenger just to mention a few.
Polly, also lovingly known as Amazon Parrot, is a self-contained set of features that allow developers to painlessly integrate text-to-speech in their own applications. With more than 30 languages supported at the time of writing, this could be a great alternative to Apple’s Siri or Google’s Assistant for instance.
Microsoft Azure’s “Machine Learning Studio” is a all-in-one solution for easy visual editing, complete with drag and drop features, making it possible to develop AI applications in the cloud without knowing how to program a single line of code.
Praised by its users for an effective and expedient feedback loop when developing and designing chatbots, Botsociety offers an intuitive system for easily creating chatbots to interact with both existing popular applications, as well as custom code.
While now replaced by a later version, this is still the most popular version out there – used by many developers looking for a highly extensible and fast CUDA-based convolutional neural network application.
Built for enterprises and heavy commercial and industrial use, DeepLearning4j can be programmed in both Java and Scala. With possible integrations such as Hadoop and Apache Spark, there are an almost limitless number of possibilities.
This software development kit by Microsoft aims to deliver plugin-type bots, and comes complete with a bot directory featuring user submitted chatbots, and combined with the cognitive recognition features, it’s possible to create a human-like bot in no time.
Apple have released Core ML for building machine learning algorithms into mobile iOS applications. This works by first developing a Core ML model, training the model based on large amounts of data, then compiling that and importing it into the app. This allows even older mobile phones and tablets to handle machine learning, even if the hardware is outdated.
Yet another Apache project, Flink is designed for data streaming applications. And Flink is especially suited for large websites wishing to incorporate real-time metrics into their machine learning calculations. This makes it possible for large ecommerce sites to apply ML to their current inventory, eliminating the need for synchronizing data sets.
This great and minimal set of C++ classes allows programmers and engineers to quickly develop prototype robotics solutions enhanced by machine learning capabilities. Fido features a robotic simulator out of the box, and an easy-to-use interface for connecting to various motor- and other robotics drivers.
GHamrouni/Recommender: A C library for product recommendations/suggestions using collaborative filtering (CF)
One of the few projects on this list developed in C, Recommender is a small library designed to be lightning fast while still using advanced features such as collaborative filtering. Recommender doesn’t require any dependencies a fact that has made it an extremely popular choice for this type of application.
Intel’s foray into the world of deep learning comes in the form of Neon. This framework is well maintained, and has a fair amount of activity on GitHub. With the option of developing RNN, LSTM, GRU, BatchNorm and other networks, Neon is popular for a reason.
Gensim is a tiny set of scripts that allows developers to quickly get started with topic modelling. This can be used for a large host of options, but by far the most common is the identify the relevancy of certain keywords by associating them with each other and thereby figuring out what the main text is all about.
DeepDetect is a self-proclaimed simple and powerful deep learning server complete with API access and with support for a host of frameworks such as Caffe, XGBoost, TSNE and TensorFlow. From identifying and categorizing images, to natural language processing, DeepDetect is the server to handle it all.
Chainer provides a set of features required for research and development using deep learning such as designing neural networks, training, and evaluation.
Created by the Carnegie Mellon University, DyNet is an extensive toolkit for developing neural networks in Python, C++ and EMNLP 2016. Running on all major platforms, such as Windows, Linux and macOS, DyNet is especially used in scenarious requiring natural language processing features.
Oryx 2 is the concept of a lambda architecture manifested as a complete library designed on Apache’s Spark and Kafka services.
H2O is designed to be used in larger machine learning projects where scaling is of vital importance. And with developers being able to choose between Python, Scala, Java, JSON and the Flow notebook/web interface, H2O has quickly become popular.
Originally developed back in 2010, this library is still somewhat maintained, in no small part due to OpenCV’s choice to move to C++. LibCCV is based on C, and therefore a core group of developers are still active in this community.
Darknet, not to be confused with the Dark Net, is an active and popular set of scripts to help building convolutional neural networks. It’s written in C and utilizes CUDA GPU processing for maximum efficiency.
GoLearn is perhaps one of the easiest frameworks to get started with, at least for Go programmers. Advertised as coming complete with batteries included – GoLearn has a bunch of examples ready to try out for newcomers.
That was it for this roundup, more than sixty different options for just about any programming language out there. Building incredibly advanced and highly complex AI mobile applications is now within reach of even novice developers, and it will be an exciting future ahead in terms of innovation and creativity.
If you have any questions, comments or more frameworks to add, please let us know in the comments below!