我已经编写了一些基本的Deep Learning
代码,其中包含2个LSTM
图层。我使用Keras
和Theano
作为我的后端。这段代码在AWS
上的机器上与AWS
上的另一台机器上的代码相比花了太长时间。在运行速度更快的机器上,每个纪元需要640秒,而在运行速度较慢的机器上,每个纪元需要超过10,000秒。
我开始认为较慢的机器上的代码没有在GPU上运行。两台机器上运行的代码完全相同。机器配置也相同。
看起来Theano
安装在较慢的机器上。我运行了以下代码并获得了结果:
有没有办法检查我的代码是在GPU还是CPU上运行?
在这方面的任何帮助都将受到高度赞赏。
TIA。
修改
根据@Marcin的建议,我添加了以下代码:
但是当我运行以下代码时,我仍然得到Used the cpu
结果:
答案 0 :(得分:1)
有几种方法可以检查:
签入Theano
标志:
import os
print(os.environ["THEANO_FLAGS"])
并查看device
的设置。
尝试运行此here提供的代码段:
代码:
from theano import function, config, shared, tensor
import numpy
import time
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([], tensor.exp(x))
print(f.maker.fgraph.toposort())
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')
修改强>
尝试将此代码段添加为代码的 FIRST TWO(重要)行:
import os
os.environ["THEANO_FLAGS"] = "mode=FAST_RUN,device=gpu,floatX=float32"