Keras is a high-level API built on Tensorflow (and can also be used on Theano). It is more user-friendly and easy to use compared to TF. There are differences, for example, if you want to make a prototype neural network quickly, use Keras. You can make one with minimal lines of code. Keras is highly modular, which makes it much easier. However, TF can be made much more flexible than Keras. TF also offers much more complex operations than Keras. The TF has a specialized Bugger, which can save hours of work... to finish:
If you are not doing some research work or developing some special kind of neural network, then go to Keras (trust me, I am a Keras fan!!). And it’s very easy to create models quickly, even more complex models in Keras.
If you want more control over your network and want to closely observe what happens to the network over time, TF is the right choice (although syntax can sometimes give you nightmares). But as we all know that Keras has been integrated into TF, it is wiser to build your network using Tf.Keras and insert anything you want into the network using pure Tensorflow. In short: Tf.Keras + Tf = All you will need.