『2022语言与智能技术竞赛』- 情感可解释性评测环境安装记录
『2022语言与智能技术竞赛』- 情感可解释性评测环境安装记录
参考官方文档
环境:CUDA 10.2 TiTAN
安装过程
创建虚拟环境并进入
$ conda create -n sentiment python==3.8.12
$ conda activate sentiment

安装paddle
$ pip3 install paddlepaddle-gpu==2.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
$ pip3 install paddlenlp==2.2.4 -i https://pypi.tuna.tsinghua.edu.cn/simple
$ pip3 install paddle-ernie -i https://pypi.tuna.tsinghua.edu.cn/simple

安装项目环境依赖
$ cd /path_to_/model_interpretation/
$ pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
下载数据
$ chmod +x ./download.sh
$ ./download.sh
报错处理
报错处理 1
此时运行代码报错如下:
TypeError: Descriptors cannot not be created directly. If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
搜索报错信息知protobuf需要降级,参考 issues/1970
$ pip install protobuf==3.20.1

报错处理 2
找不到 libcudnn.so 动态链接库
搜索解决方法,在 /usr/local/cuda-10.2/lib64 和 /usr/local/cuda/lib64 目录中没有找到 libcudnn.so
$ ls -alh /usr/local/cuda-10.2/lib64 | grep libcudnn.so
$ ls -alh /usr/local/cuda/lib64 | grep libcudnn.so
想到没有安装 cudnn,cuda 版本为 10.2,故安装 cudnn7.6.5
$ conda install cudnn==7.6.5
安装完后,在 ~/anaconda3/envs/sentiment/lib 路径中找到 libcudnn.so
(sentiment) xxx@TITAN:/path_to_e/model_interpretation$ ls -alh ~/anaconda3/envs/sentiment/lib/ | grep libcudnn.so
lrwxrwxrwx 1 lisq lisq 17 12月 30 15:21 libcudnn.so -> libcudnn.so.7.6.5
lrwxrwxrwx 1 lisq lisq 17 12月 30 15:21 libcudnn.so.7 -> libcudnn.so.7.6.5
-rwxrwxr-x 3 lisq lisq 409M 12月 20 2019 libcudnn.so.7.6.5

需要指明动态库的地址,使用 Linux 环境变量指明
export LD_LIBRARY_PATH=/path_to_/anaconda3/envs/b1/lib:$LD_LIBRARY_PATH
编辑 run_train.py,在文件开头,添加 export xxxx(如上),使 train 可以读取你设定的 lib 目录
$ ./run_train.sh
报错处理 3
运行之后报错如下


报错信息应该是numpy和padlle版本不兼容的问题,所以对paddle版本做升级尝试如下
$ pip3 install paddlepaddle-gpu==2.2.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
再次运行成功

补充
按照上述安装过程,换到另一台CUDA为11.4的服务器上,运行代码发现未报错但明显运行缓慢,GPU占用量非常低,想到应该是版本问题。故重新下载对应于CUDA11.4版本的cudnn==8.2.1,此时paddle版本应当升级为2.3.2。

浙公网安备 33010602011771号