When comparing Infer.NET vs Keras, the Slant community recommends Keras for most people. In the question“What are the best artificial intelligence frameworks?” Keras is ranked 3rd while Infer.NET is ranked 6th. The most important reason people chose Keras is:
You can choose the back-end for Keras. Simply change the backend field to "theano", "tensorflow", or "cntk". Theano was discontinued in 2017, so TensorFlow or CNTK would be the better choice.
Ranked in these QuestionsQuestion Ranking
Pro Supports multiple inference algorithms
Infer.NET supports expectation propagation (including belief propagation as a special case), variational message passing (also known as variational Bayes), max product (for discrete models), and block Gibbs sampling.
You can use Infer.NET to solve many different kinds of machine learning problems, from standard problems like classification, recommendation or clustering through to customised solutions to domain-specific problems.
Pro Cross platform
Can be used on Windows (.NET), OSX or Linux (using mono)
Pro Runs on top of Theano, TensorFlow or CNTK
You can choose the back-end for Keras. Simply change the backend field to "theano", "tensorflow", or "cntk".
Theano was discontinued in 2017, so TensorFlow or CNTK would be the better choice.
Pro Simple to use
Pro Can be used to write really short pieces of code
Keras enforces minimalism as much as possible. Because of this, it's possible to write a small Neural Network in just a couple of lines of code.
Pro Really straightforward for someone who is familiar with deep learning
Pro Quite modular
When using Keras you don't have to pull every part of the framework on your project. For example, you can only use training algorithms and not layer implementations. So it works more like a collection of libraries.
Con Closed source
Con No commercial license
Infer.NET is free for academic use. However, at this time, commercial use of Infer.NET is limited to Microsoft. No other commercial licenses are available.
Con Little customization compared to other frameworks
Keras is a high-level API. It's difficult to customize your model past a point. If you want to build something beyond the application-level, use Theano or TensorFlow. (Keras runs on top of either one of these anyways)