Installing Theano on Windows 8.1

So I tried using Caffe for some natural language processing and found it wasn’t well suited. While it’s great for image processing with convolution networks (CNN), it would take quite a bit of effort to add looping output to make a recurrent (RNN). Recurrent Neural networks are helpful in natural language processing. For instance, if we’re going to pick the next word in a sentence, it’s important to know what words came before it.

Keras is the other major python based neural net tool and to use it, you need matrix library like Theano or Tensorflow. I chose Theano since Tensorflow doesn’t have good windows support at the moment.

The main issue I ran into while installing Theano a crash I was running after installation. The Windows guide can be found here. The dependencies all installed more or less without a hitch. However, I foolishly thought my gcc installation was sufficient, and eventually ran into problems the first time I tried:

conda install theano

I hit a wall. Unfortunately, I didn’t catch what that first error was. The bottom line is I eventually realized it was missing compiler error, and I thought I solved it with

conda install mingw

This doesn’t work! I was able to get Theano to import in python after I added the .theanorc file to my %USERPROFILE%, but I was still running into a python crash specifically at this line in the gpu test:

f = function([], tensor.exp(x))

Python crashed and burned and I figured it had to do with mingw not using a 64-bit binary or dll. No evidence though. Anyway, this fixed it for me:

conda uninstall mingw
conda install m2w64-toolchain

If I had followed the directions closer, I might have saved quite a bit of time, but I just assumed GCC was fine.

Never assume your toolchain is right when you’ve got x86_64 flags in the mix until you’re compiling.


Also published on Medium.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>