I just came across this today and it was quite helpful to point me in the right direction after a lot of frustration! I went from ~92 to 93% validation accuracy and bumped up to 98.5% simply by changing the backend from Tensorflow to Theano. This was driving me nuts!
I was on Tensorflow in the first place because I wanted to run locally on my Windows machine against a perfectly good GeForce 1070. A few months ago when I tried installing Theano on Windows it seemed like a nightmare with juggling all the dependencies. Tensorflow and CNTK are super easy to install in contrast. I -think- it got easier recently, because I got it running this morning, albeit without the GCC compiler yet (I'll tackle that later). So it's a bit slow when it first starts. Quite a bit actually.
To add a bit more just to make sure others can replicate what I have up and running:
1. Windows 10
2. Python 3.5 (Anaconda)- requires some minor changes of the scripts.
3. Theano 0.9 with running the one liner Conda dependencies install they have.
4. Keras 2 - This guys work saved me some time:
I also have a github repo that works, but note I've deviated form the class quite a bit in doing my own experimentation (not using Jupyter, and trying to structure this stuff to be more user friendly to -me-). Also note it's a work in progress as of this writing. There's some goofy (unpythonic) things going on style-wise that I'll look to fix eventually, and I'm actively trying to figure out a good abstracted structure.