In my experience, CNNs offer the best performance. It is also easy to treat as a black box with many tunable parameters.
But the existing frameworks are mostly bad as an engineering product. Caffe, for example, calls `exit` every time an error occurs, including recoverable ones like files which do not exist.
Yes, even we found Caffe to be overwhelming.
This library seems promising considering there are no dependencies and is quite portable to Android or iOS. https://github.com/nyanp/tiny-cnn
But the existing frameworks are mostly bad as an engineering product. Caffe, for example, calls `exit` every time an error occurs, including recoverable ones like files which do not exist.