我目前正在忙于配置开发环境(pycharm),以便可以在环境中使用docker并使用调试器。我目前正在研究将在GPU上运行的神经网络。
如果我从终端使用“ docker run --runtime = nvidia -it IMAGE-ID”启动容器,然后运行我的Python脚本,则GPU将被识别而没有问题。但是,如果我在Pycharm中使用execute键,则无法识别GPU,并且收到以下错误消息。
c7184d009d3c:python -u / root /DeepLearning/DeepConvRNN.py 警告(theano.sandbox.cuda):cuda后端已弃用,并且 在下一个版本(v0.10)中将被删除。请切换到 gpuarray后端。
警告(theano.sandbox.cuda):已安装CUDA,但已安装设备gpu 不可用(错误:无法获取可用的GPU数量: CUDA驱动程序版本不足以用于CUDA运行时版本) 弃用警告:此模块在版本0.18中已弃用 支持将所有重构到的model_selection模块 类和函数被移动。另请注意, 新的CV迭代器与此模块的迭代器不同。这个模块 将在0.20中删除。 “此模块将从0.20中删除。”,不推荐使用警告) 追溯(最近一次通话): 文件“ /root/DeepLearning/DeepConvRNN.py”,行274,在 removeNulls = False) RuntimeError:尚未选择gpu设备。请确保GPU 该设备之前是由Theano初始化的。
我已经在docker镜像中包含了一个指向Python解释器的远程解释器。现在,我在Pycharm中启动脚本时,将实例化一个新容器,执行程序,并在退出后删除该容器。到目前为止,我能发现的是Pycharm用错误的参数启动了容器。因此,此容器的运行时环境是“ runc”,而不是“ nvidia”。我现在的猜测是,这就是无法识别gpu的原因。
不幸的是,Pycharm没有为我提供启动容器时传递参数的选项,因为它自动绑定到远程解释器,该解释器指向从其实例化的图像。执行脚本时,容器会自动启动和停止。你们知道我可以在pycharm中传递正确的参数吗?
感谢和问候, 亚历克斯
ps:此项目是基于同事的较旧项目构建的,因此我需要使用python2.7和较旧版本的cuda,matplotlib等。.