Keras is a high level api which works on top of Tensorflow. It is very easy to learn and implement. Tensorflow allows us to change every minute detail in the network. Thus making it useful in scenarios where flexibility is essential. But building a network and debugging it in Tensorflow is more time consuming than Keras. So use Keras when you want to build a model in a less amount of time, or when you want to test how good a architecture is. Use Tensorflow when you want to get your hands dirty by changing every parameter there is. Hope this helps
solved Choose between Keras and TensorFlow for a beginner?