1

我在我第一次 ssh 进入的远程服务器上使用 theano(我在那个系统上没有 root)。这很好用,但是,如果我启动 a screen,尝试导入 theano 时会出错。

不使用时的行为screen

>>> import theano
Using gpu device 0: GeForce GTX TITAN X (CNMeM is disabled, CuDNN 4007)

使用时的行为screen

>>> import theano
ERROR (theano.sandbox.cuda): Failed to compile cuda_ndarray.cu: libcublas.so.7.5: cannot open shared object file: No such file or directory
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/2012/enewel3/.local/lib/python2.7/site-packages/theano/__init__.py", line 103, in <module>
    import theano.sandbox.cuda
  File "/home/2012/enewel3/.local/lib/python2.7/site-packages/theano/sandbox/cuda/__init__.py", line 697, in <module>
    use(device=config.device, force=config.force_device, test_driver=False)
  File "/home/2012/enewel3/.local/lib/python2.7/site-packages/theano/sandbox/cuda/__init__.py", line 496, in use
    device, cuda_initialization_error_message))
EnvironmentError: You forced the use of gpu device gpu, but CUDA initialization failed with error:
cuda unavailable

我应该如何在屏幕会话中使用 theano?

4

1 回答 1

2

问题在于,尽管 screen 继承了大多数环境变量,但它会添加、删除和更改其中的一些变量。就我而言,它正在改变LD_LIBRARY_PATH.

进入屏幕后,手动将环境变量设置为正确的值即可解决问题。对我来说,这看起来像这样:

export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/pkgs/gurobi502/linux64/lib

将该行添加到 my.bashrc可确保屏幕始终获得正确的值。请注意,将其添加到 .bash_profile 将不起作用,因为 .bash_profile 仅在登录时运行,而 .bashrc 为每个新 shell 运行。

于 2016-04-21T22:26:00.760 回答