Could not load dynamic library ‘libcudart.so.11.0‘; dlerror: libcudart.so.11.0:

根据文章  Ubuntu16.04 部署 TensorFlow2-GPU版本(虚拟环境)部署完之后,就开始了我的训练之旅,训练了一天发现!!为什么我的训练过程这么慢!!

于是,我使用下面命令查看了一下:

nvidia-smi

发现我的GPU并没有被占用....

于是我查看了一下训练日志,满屏幕的:

Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No sudch file or directory; LD_LIBRARY_PATH: /usr/local/cuda-10.0/lib64:

但是我明明已经使用conda install 命令安装了cuda 和cudnn

可是这个的提示是我该目录找不到对应安装文件,也没有问题。

于是!在虚拟环境中添加临时环境变量LD_LIBRARY_PATH迫在眉睫

为了确认一下是不是这个问题,运行下面命令:

source activate tf2    # tf2为虚拟环境名称
echo $LD_LIBRARY_PATH    # 查看当前环境的环境变量

运行结果的确是:

/usr/local/cuda-10.0/lib64

所以,我们可以通过在激活虚拟环境时,顺便更改变量LD_LIBRARY_PATH,步骤如下:

1. 查看虚拟环境路径:

echo $CONDA_PREFIX

2. 在该路径下新建下列文件,目的是为了我们在使用 activate/deactivate 命令激活/退出虚拟环境时,可以自动运行activate.d/env_vars.sh或deactivate.d/env_vars.sh

cd $CONDA_PREFIX
mkdir -p ./etc/conda/activate.d
mkdir -p ./etc/conda/deactivate.d
touch ./etc/conda/activate.d/env_vars.sh
touch ./etc/conda/deactivate.d/env_vars.sh

3. 编辑文件 activate.d/env_vars.sh

export OLD_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH=anaconda3/envs/tf2/lib64    # 此处tf2为虚拟环境名称
                                                   # anaconda3/envs/..为虚拟环境的路径

4. 编辑文件 dectivate.d/env_vars.sh

export LD_LIBRARY_PATH=${OLD_LD_LIBRARY_PATH}
unset OLD_LD_LIBRARY_PATH

5. 退出环境

source deactivate tf2    # tf2为虚拟环境名称

6. 重新进入环境,检查是否正确

source activate tf2
echo $LD_LIBRARY_PATH

此时结果已经变成了我们在步骤3中设置的环境变量路径,设置完毕.

你可能感兴趣的:(深度学习,python,ubuntu,linux,运维)