标签: theano-cuda

如何使用Theano启用Keras以使用多个GPU

建立:

  • 使用带有Nvidia GPU的Amazon Linux系统
  • 我正在使用Keras 1.0.1
  • 运行Theano v0.8.2后端
  • 使用CUDA和CuDNN
  • THEANO_FLAGS = "设备= GPU,floatX = FLOAT32,lib.cnmem = 1"

一切正常,但是当我增加批量大小以加快训练时,我在大型模型上耗尽了视频内存.我认为转向4 GPU系统理论上可以提高可用的总内存或允许更小的批量构建更快,但是观察nvidia统计数​​据,我可以看到默认情况下只使用一个GPU:

+------------------------------------------------------+ 
| NVIDIA-SMI 361.42     Driver Version: 361.42         |         
|-------------------------------+----------------------+----------------------+ 
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC | 
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |    
|===============================+======================+======================| 
|   0  GRID K520           Off  | 0000:00:03.0     Off |                  N/A | 
| N/A   44C    P0    45W / 125W |   3954MiB /  4095MiB |     94% Default      |
+-------------------------------+----------------------+----------------------+ 
|   1 …
Run Code Online (Sandbox Code Playgroud)

gpu theano keras cudnn theano-cuda

10
推荐指数
1
解决办法
4891
查看次数

在执行Tensorflow或Theano代码期间GPU丢失

当训练两个不同神经网络中的一个时,一个用Tensorflow,另一个用Theano,有时候经过一段随机的时间(可能是几个小时或几分钟,大多数几个小时),执行冻结,我得到这个消息运行"nvidia-smi":

"无法确定GPU 0000:02:00.0的设备句柄:GPU丢失.重新启动系统以恢复此GPU"

我尝试监控GPU性能,执行13个小时,一切看起来都很稳定: 在此输入图像描述

我正在与:

  • Ubuntu 14.04.5 LTS
  • GPU是Nvidia Titan Xp(这种行为在同一台机器上的另一个GPU上重复)
  • CUDA 8.0
  • CuDNN 5.1
  • Tensorflow 1.3
  • Theano 0.8.2

我不确定如何处理这个问题,有人可以提出一些可能导致这种情况以及如何诊断/解决此问题的建议吗?

gpu nvidia cudnn theano-cuda tensorflow-gpu

8
推荐指数
1
解决办法
1302
查看次数

警告(theano.sandbox.cuda):已安装CUDA,但设备gpu不可用(错误:cuda不可用)

在Ubuntu MATE 16.04我试图使用GPU在这里运行深度学习的python示例:

使用GPU测试Theano

我确实运行了示例代码,

THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32 python check1.py
Run Code Online (Sandbox Code Playgroud)

但它似乎是使用CPU而不是GPU.这是终端输出的最后一部分:

WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu0 is not  available  (error: cuda unavailable)
...
Used the cpu
Run Code Online (Sandbox Code Playgroud)

我也尝试运行此代码:

THEANO_FLAGS=device=cuda0 python check1.py
Run Code Online (Sandbox Code Playgroud)

但输出是:

ERROR (theano.sandbox.gpuarray): pygpu was configured but could not be imported
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/theano/sandbox/gpuarray/__init__.py", line 20, in <module>
    import pygpu
ImportError: No module named pygpu
...
used cpu
Run Code Online (Sandbox Code Playgroud)

我从apt安装了cuda工具包.这里有(希望)有用的数据:

python --version
Python 2.7.12

g++ -v
gcc version 5.4.0

nvcc --version
Cuda compilation tools, release 7.5, …
Run Code Online (Sandbox Code Playgroud)

python theano theano-cuda

8
推荐指数
1
解决办法
1万
查看次数

keras预测很慢

我正在进行强化学习任务,并决定使用keras NN模型进行Q值近似.这种方法很常见:在每次操作之后,奖励存储在内存重放数组中,然后我从中获取随机样本并使用新数据拟合模型state-action => reward+predicted_Q(此处有更多详细信息).为了进行训练,必须为训练集中的每个项目预测Q值.

脚本运行速度非常慢,所以我开始调查.分析表明_predict_loop方法占用了56,87%的累积时间: 在此输入图像描述 它看起来很奇怪,因为预测只是一种单向传播.只是一组数字的一次性乘法.我使用的模型非常简单:8个输入,隐藏层上5个节点,1个输出.

我已经安装并配置了CUDA,运行了一些示例测试,它显示了GPU的使用,我也可以看到巨大的GPU负载.当我运行我的代码时 - 有一条消息:"使用gpu device 0:GeForce GT 730",但我可以看到GPU负载非常低(大约10%).

预测功能花费这么多时间是正常的吗?有没有办法使用GPU进行此计算?

performance theano keras theano-cuda

7
推荐指数
1
解决办法
8444
查看次数

Theano使用命令行中的gpu,但不使用PyCharm

我试图让Theano在我的Linux机器上使用gpu.它适用于命令行,但不适用于Pycharm.两者都在我的机器的同一文件夹中使用Python 3.5.

我正在测试这个脚本:

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 …
Run Code Online (Sandbox Code Playgroud)

pycharm theano theano-cuda

6
推荐指数
0
解决办法
350
查看次数

Conda一直在尝试安装所有可选的依赖项?

安装Theano anaconda时会自动尝试安装pygpu,尽管这是一个可选的依赖项.我已从Windows用户目录中删除了.theanorc文件.

此外,在运行我的应用程序时,Theano尝试从GPU加载.它就像是以某种方式记得的?

conda install theano
Fetching package metadata .............
Solving package specifications: .

Package plan for installation in environment 
C:\Users\zebco\Miniconda3\envs\py35:

The following NEW packages will be INSTALLED:

libgpuarray: 0.6.9-vc14_0
pygpu:       0.6.9-py36_0
theano:      0.9.0-py36_0

Proceed ([y]/n)?
Run Code Online (Sandbox Code Playgroud)

如你所见,我只指定安装theano但conda想要安装所有内容,包括可选的依赖项.

python-3.x theano anaconda theano-cuda

6
推荐指数
2
解决办法
1418
查看次数

不能在上下文中使用 cuDNN 无,致命错误:cudnn.h:没有这样的文件或目录

我正在尝试配置theanogpu在我的 Windows 机器上使用。我已经设置.theanorc为使用,device= gpu但是当我运行一些应该使用 gpu 的代码时,我收到以下错误:

Can not use cuDNN on context None: cannot compile with cuDNN. We got this error:
c:\users\...\appdata\local\temp\try_flags_pt24sj.c:4:19: fatal error: cudnn.h: No such file or directory
compilation terminated.

Mapped name None to device cuda0: GeForce 840M (0000:03:00.0)
Run Code Online (Sandbox Code Playgroud)

我检查了我的CUDA_PATH=C:\Program Files\NVIDIA\v8.0GPU Computing Toolkit\CUDA 以查看 cudnn.h 是否存在,并且我在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include

windows theano cudnn theano-cuda

5
推荐指数
1
解决办法
2786
查看次数

在keras和tensorflow中为不同用户共享GPU内存

我们只有一个装有CUDA驱动程序的GPU,每当一个用户运行代码时,整个内存就会分配给该用户。并且其他用户无法使用GPU。有办法摆脱这种行为吗?

gpu keras tensorflow theano-cuda

4
推荐指数
1
解决办法
1554
查看次数

安装 CUDNN 用于一般用途,无需 root 访问

我使用具有 CUDA 7.5 的服务器。但是服务器不涉及CUDNN。

是否可以安装 CUDNN,并设置所有与 CUDA 的链接,无需 root 访问,以便在 ubuntu 14.04 上使用所有应用程序?

我已经在这个页面上实现了解决方案为 Theano 安装 cuDNN without root access,但它对我不起作用。我已经通过构建 caffe 进行了验证;http://caffe.berkeleyvision.org/,我已经使用 cmake 进行了检查。我创建了一个目录 caffe/build 并从那里运行 cmake ..。如果配置正确,我会看到以下几行:

-- Found cuDNN (include: /usr/local/cuda-7.0/include, library: /usr/local/cuda-7.0/lib64/libcudnn.so)

-- NVIDIA CUDA:
--   Target GPU(s)     :   Auto
--   GPU arch(s)       :   sm_30
--   cuDNN             :   Yes
Run Code Online (Sandbox Code Playgroud)

但我看到

--   cuDNN             :   Not found
Run Code Online (Sandbox Code Playgroud)

PS我还需要运行:https : //github.com/rsennrich/nematus

在本地安装 CUDNN 并与服务器中的全局 CUDA 链接的最佳方法是什么?

ubuntu theano cudnn theano-cuda

4
推荐指数
1
解决办法
4404
查看次数

Theano与gpu.在上下文中使用cuDNN版本5110无

我正在尝试使用Theano和gpu.我的操作系统是Ubuntu 16.04

首先,打字import theano会导致

Using cuDNN version 5110 on context None
Mapped name None to device cuda0: GeForce GTX 1080 (0000:01:00.0)
Run Code Online (Sandbox Code Playgroud)

要查看我的GPU是否正在使用,请尝试使用theano文档进行测试

我的〜/ .theanorc是

[global]
device = cuda0
floatX = float32

[nvcc]
fastmath = True
Run Code Online (Sandbox Code Playgroud)

在这种情况下测试说:

[GpuElemwise{exp,no_inplace}(<GpuArrayType<None>(float32, (False,))>), 
HostFromGpu(gpuarray)(GpuElemwise{exp,no_inplace}.0)]
Looping 1000 times took 0.191431 seconds
Result is [ 1.23178029  1.61879349  1.52278066 ...,  2.20771813  2.29967761 1.62323296]
Used the cpu
Run Code Online (Sandbox Code Playgroud)

但使用旧的后端device = gpu0说:

[GpuElemwise{exp,no_inplace}(<CudaNdarrayType(float32, vector)>), HostFromGpu(GpuElemwise{exp,no_inplace}.0)]
Looping 1000 times took 0.199280 seconds
Result is [ 1.23178029  1.61879349 …
Run Code Online (Sandbox Code Playgroud)

python theano theano-cuda

3
推荐指数
1
解决办法
2114
查看次数

在没有root访问权限的情况下为Theano安装cuDNN

我可以在本地安装cuDNN而无需root权限吗?

我没有root访问我正在使用的Linux机器(发行版是openSuse),但我已经安装了CUDA 7.5.

我正在使用Theano,我需要cuDNN来提高GPU上的操作速度.

cudnn-7.5-linux-x64-v5.1从Nvidia 下载并按照说明我需要将CuDNN存档内容复制到CUDA安装文件夹,即(cuda/lib64 /和cuda/include /).但这需要我具有root访问权限.

我是否有可能在本地提取cudnn存档并为theano提供cudnn库的路径?

python linux gpu theano-cuda

2
推荐指数
1
解决办法
1913
查看次数