Keras下GPU/CPU模式切换

↘锁芯ラ 提交于 2020-04-05 17:46:55

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')


感谢超级杰哥

http://blog.csdn.net/autoliuweijie/article/details/53157169

发布了347 篇原创文章 · 获赞 635 · 访问量 266万+
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!