2016-04-21 2 views
1

Я использую theano на удаленном сервере, на котором я сначала ssh (у меня нет root в этой системе). Это работает отлично, однако, если я начинаю screen, я получаю сообщение об ошибке при попытке импортировать theano.Как использовать 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 в течение сеанса экрана?

ответ

2

Проблема была связана с тем, что, хотя экран наследует большинство переменных окружения, он добавляет, удаляет и изменяет некоторые из них. В моем случае он менял значение LD_LIBRARY_PATH.

При входе в экран, вручную устанавливая переменную окружения в соответствующее значение, исправлена ​​проблема. Для меня, это выглядит следующим образом:

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

Добавление этой строки в мой .bashrc убеждается, что экраны всегда получить правильное значение. Обратите внимание, что добавление его в .bash_profile не будет работать, потому что .bash_profile запускается только при входе в систему, а .bashrc запускается для каждой новой оболочки.

Смежные вопросы