Kur vs Keras - pros and cons
(Disclaimer: I am the core maintainer of Kur.)

Kur and Keras are both deep learning frameworks, but they serve different purposes:


Keras builds on Theano and TensorFlow to provide a high-level API to the underlying tensor libraries. This means that you use Keras as part of your Python program, and you programmatically create your model like this (this is Keras' functional API):

import keras.layers as L
import keras.models as M

my_input = L.Input(shape=(100,))
intermediate = L.Dense(10, activation='relu')(my_input)
my_output = L.Dense(1, activation='softmax')(intermediate)

model = M.Model(input=my_input, output=my_output)


This is great when you are developing deep learning networks that you want to "embed" in some larger Python program, or when you are developing a single model that you intend to use. Keras is also quite mature and has a great community supporting it. Keras currently offers the superior API for models that you will create and use entirely within Python.
Kur builds on top of Keras to provide a descriptive framework for designing and running deep learning models; you don't write programs when using Kur. Instead of programming, you write "Kurfiles" which describe your model:

model:
  - input: my_input
  - dense: 10
  - activation: relu
  - dense: 1
  - activation: softmax
  - output: my_output


That's the same model as I just wrote in Keras. Kur's descriptive language makes quickly prototyping and testing your models. The advantage of the Kurfile is that you can tweak large or small pieces of your model without having to touch your codebase. And when Kurhub is released, you'll have a Docker-like repository for sharing models.

Kur also takes care of a lot of details that you need to consider when writing deep learning systems. For example, Kur knows about several different datatypes (CSV, Python pickle, etc.), and it can load the data and infer shapes for you. Without Kur, you'd have to write your own data processing pipeline (which may be easy or hard, depending on your data). Once you write the Kurfile (in YAML or JSON), you can train with kur train Kurfile or use it for inference with kur evaluate Kurfile. This makes it very easy to use as a tool, rather than as a Python API.


Both Kur and Keras can use Theano or TensorFlow, both offer Python APIs, and both are easy to write models in. It really depends on how to plan to develop and deploy your system.