Keras下GPU/CPU模式切换

1 确保环境

确保已经正确安装了keras, tensorflow/theano, cuda

在MacOS下面安装CUDA请参考:

mac osx/linux下如何将keras运行在GPU上

use cuda with macos

Ubuntu下面安装CUDA请参考:

配置深度学习环境的最后一步

2 切换gpu

来自官方的介绍How do I use keras with gpu

If you are running on the TensorFlow backend, your code will automatically run on GPU if any available GPU is detected. If you are running on the Theano backend, you can use one of the following methods:

Method 1: use Theano flags.

THEANO_FLAGS=device=gpu,floatX=float32 python my_keras_script.py
The name ‘gpu’ might have to be changed depending on your device’s identifier (e.g. gpu0, gpu1, etc).

Method 2: set up your .theanorc: Instructions

sudo vim ~/.theanorc

add these content
[global]
device=gpu
floatX=float32

Method 3: manually set theano.config.device, theano.config.floatX at the beginning of your code:

import theano
theano.config.device = ‘gpu’
theano.config.floatX = ‘float32’

使用下面这个脚本来验证是否启动GPU:

from theano import function, config, shared, sandbox  
import theano.tensor as T  
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([], 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 %f seconds" % (iters, t1 - t0))  
print("Result is %s" % (r,))  
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):  
    print('Used the cpu')  
else:  
    print('Used the gpu')

你可能感兴趣的:(深度学习,cuda,gpu,keras)