When comparing Torch 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 Torch is ranked 4th. 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 Easy switch between CPU and GPU
It takes little more than a type cast of your inputs to go from CPU to GPU computation.
Pro Lots of easy to combine modular pieces
Torch is a very modular framework. As such, you can choose which modules you need to implement and which modules to eliminate from your solution.
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 Not easily accessible to the academic community
Being written in Lua instead of the more widely used Python, it's not as accessible to academics as other solutions which are implemented in Python. With Python being one of the most widely used languages in scientific computing.
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)