I'm using Windows 7 on a laptop with a decent Nvidia GPU, and it's been very difficult trying to get the first lesson to run. I've worked on it for 3-4 nights in a row, losing sleep...
I think I finally managed to sorta get it to work, so I'll try to summarize what worked for me.
There were both Nvidia driver issues, and Python version issues.
I'll detail the Python issues first, since the driver issues might be unique to my own hardware.
Dell e5550, Windows 7 x64, Visual Studio 2013 Community Edition, 2 versions of GCC (5 and 6) already installed and on the path, also MSYS2 was installed.
What worked for me was following the steps from this excellent github issue, opened for Theano:
This was after I've already followed 3 or 4 other blog posts/tutorials, and none of them worked.
It's for Windows 10 & Visual Studio 2015, but most of it applied to my setup (except for step #9, which wasn't necessary for me).
The 2 key things, I think, were creating a separate self-contained environment for Python 3.5 (step #2 there), and making it use the GCC version from the mingw which came with Anaconda instead of the 2 versions I already had lying around (step #10).
I didn't try step #15 (using cuDNN) or step #16 (using cuBLAS), or step #17-18 (installing PyCharm), but I might do 15-16 it if it seems slow.
I still had to fix some errors in the scripts for lesson 1, having to do with installing Python 3 instead of Python 2. I don't know much about Python, I've taught it myself 20 years ago but never used it since. So that took some googling.
In fact the “plots” function still isn't recognized and I have no idea what's the alternative, but I'll work on it...
The only other thing I did was to lower the number of batches (batch_size) to 16, or I'd get an “out of memory” error.
Now for the driver issues.
These might be due to something faulty in my hardware, but I'll include them just in case it might help someone with the same problems.
I have a Dell laptop, with what GeForce calls the “Optimus” setup – both an Intel graphics card, and an Nvidia GeForce 830M card. There's a way to tell Windows what graphics card to use for each application, and what the default should be. The default has been the Intel card, which saves some battery life.
After I downloaded and installed the latest CUDA version from the GeForce site, I started getting error messages when I tried to run the sample theano script with the GPU, telling me that the GPU isn't available.
The fix was to change the system-wide default to use the Nvidia card, using the Nvidia control panel.
After that, I started getting very strange crashes when running that script. Either Windows would tell me that the Nvidia card had been “ejected” (which is weird since it's soldiered to the motherboard), and I would need a reboot in order to enable the driver, or it would tell me that the driver had crashed and it restored it.
Part of the reason is that I've discovered the CUDA install updates the graphics driver version too,you have to explicitly tell it not to do that.
After uninstalling and installing many driver/CUDA versions, the one combination which sorta worked with almost no crashes was:
GeForce driver version 368.69 (latest is 378.66)
CUDA version 7.5 (the latest is CUDA 8).
I still get a crash when running one of the sample Theano scripts, but no crash at all when running the course code from lesson 1.