Python – How configure theano on Windows


I have Installed Theano on Windows machine and followed the configuration instructions.

I placed the following .theanorc.txt file in C:\Users\my_username folder:

device = gpu
floatX = float32

fastmath = True
# flags=-m32 # we have this hard coded for now

ldflags =
# ldflags = -lopenblas # placeholder for openblas support

I tried to run the test, but haven't managed to run it on GPU. I guess the values from .theanorc.txt are not read, because I added the line print config.device and it outputs "cpu".

Below is the basic test script and the output:

from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time

print config.device

vlen = 10 * 30 * 768  # 10 x #cores x # threads per core
iters = 1000

rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], T.exp(x))
print f.maker.fgraph.toposort()
t0 = time.time()
for i in xrange(iters):
    r = f()
t1 = time.time()
print 'Looping %d times took' % iters, t1 - t0, 'seconds'
print 'Result is', r
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):
    print 'Used the cpu'
    print 'Used the gpu'


pydev debugger: starting (pid: 9564)
[Elemwise{exp,no_inplace}(<TensorType(float64, vector)>)]
Looping 1000 times took 10.0310001373 seconds
Result is [ 1.23178032  1.61879341  1.52278065 ...,  2.20771815  2.29967753
Used the cpu

I have installed CUDA Toolkit successfully but haven't managed to install pyCUDA. I guess Theano should work without pyCUDA installed anyway.

I would be very thankful if anyone could help out solving this problem. I have followed these instructions but don't know why the configuration values in the program don't match the values in .theanorc.txt file.

Best Solution

Contrary to what has been said on a couple of pages, my installation (Windows 10, Python 2.7, Theano 0.10.0.dev1) would not interpret config instructions within a .theanorc.txt file in my user profile folder, but would read a .theanorc file.

If you are having trouble creating a file with that style of name, use the following commands at a terminal:

type NUL > .theanorc