Theano не использует GPU даже после того, как для устройства установлено «cuda *» - Python2.7 - PullRequest
0 голосов
/ 24 января 2019

Я изучаю google-сотрудник.Я запускаю программу, основанную на Theano, которая отнимает много времени, так как theano использует CPU.

  1. Я установил настройку ноутбука на графический процессор.
  2. Также установили переменную окружения для использования cuda. ​​

    os.environ["THEANO_FLAGS"] = "mode=FAST_RUN,device=cuda*,floatX=float32"
    

Когда я проверяю устройство, используемое theano print(theano.config.device), оно дает мне cuda* в качестве вывода.

Но когда я бегу ниже кода:

# Test if Theano is using the GPU
from theano import function, config, shared, tensor
print("\n\nDevice:")
print theano.config.device
import numpy
import time

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

rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], tensor.exp(x))

print(f.maker.fgraph.toposort())
print(theano.config.device)

t0 = time.time()
for i in range(iters):
    r = f()
t1 = time.time()

print("Looping %d times took %f seconds" % (iters, t1 - t0))
print("Result is %s" % (r,))

if numpy.any([isinstance(x.op, tensor.Elemwise) and
              ('Gpu' not in type(x.op).__name__)
              for x in f.maker.fgraph.toposort()]):
    print('Used the cpu')
else:
    print('Used the gpu')

Это показывает мне ниже вывод:

Device:
cuda*
[Elemwise{exp,no_inplace}(<TensorType(float32, vector)>)]
cuda*
Looping 10000 times took 11.660804 seconds
Result is [1.2317803 1.6187934 1.5227807 ... 2.2077181 2.2996776 1.6232328]
Used the cpu

Как я должен получить theano кработать на GPU?Я также установил файл theonarc с помощью следующих команд:

# set Theano config
!echo -e '[global]\ndevice = cuda\nfloatX = float32\n' > ~/.theanorc
!cat ~/.theanorc
    [global]
    device = cuda
    floatX = float32

Но я не уверен, где именно этот файл должен находиться в google-сотрудник.В настоящее время он находится ниже:

! find / -name ".theanorc"
    /root/.theanorc
...