版权声明:未经允许,请勿私自转载。 原文地址:https://blog.csdn.net/Mrx_Nh/article/details/79888928
最近在学习一些一起NLP方面的东西,首先当然要把环境搭起来了,踩坑无数,经过三天的不懈奋战,终于把环境搭起来了,网上这方面的资料都比较散乱,很多都是很旧的,为了跟上AI浪潮,特此写一篇详细的博客。如果读者按照此方法来操作遇到什么问题,可以在评论区留言,博主一定在第一时间答复。
各组件版本:
- Ubuntu 16.04.04 Desktop
- Anaconda 3-5.1.0
- GeoForce 1070 (ZOTAC)
- CUDA 9.1
- Python 3.6
- PyTorch
- OpenNMT-py
1. 关于系统,最初我挂PT种子的时候不小心手贱直接把Ubuntu系统给删掉了,我说我硬盘500G的容量哪去了,哪去了,结果死活打不开系统,我也是服了,刚开始重装的时候用的是之前的版本,Ubuntu 16.04.01 Desktop,但是插上独显之后装好的系统吸纳卡驱动有问题,分辨率感人,网卡驱动也有问题,连不上网,道行不够,索性换了最新的 Ubuntu 16.04.04,本着更新修复BUG的想法,没想到直接就装好了,特别轻松。所以我这的配置用的全部是都是最新版(强迫症)。
2. 安装Python 3.6
$ sudo add-apt-repository ppa:jonathonf/python-3.6
$ sudo apt-get update
$ sudo apt-get install python3.6
这样系统中就有 Python 2.7、Python 3.5、Python3.6同时存在,莫方,后面用Anaconda时非常方便,可以定义多个环境。现在讲Python 3.6设为默认Python3环境
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
$ sudo update-alternatives --config python3
$ python3 -V
发现现在是Python3.6的环境就没有问题,但是这样会导致终端打不开,ctrl + alt + t快捷键失灵,用如下命令解决
$ python3 -V
这是 ctrl + alt + t不能打开终端了,甚至用图标的方法也不能打开,解决方案如下
$ cd /usr/lib/python3/dist-packages/gi/
$ sudo cp _gi.cpython-35m-x86_64-linux-gnu.so _gi.cpython-36m-x86_64-linux-gnu.so
$ sudo cp _gi_cairo.cpython-35m-x86_64-linux-gnu.so _gi_cairo.cpython-36m-x86_64-linux-gnu.so
安装如下依赖,否则在后面的Anaconda中会报No Module named gdbm:
$ sudo apt-get install python3.6-gdbm
至此,Python 3.6算是装好了。
2.安装Anaconda
下载安装包run文件,我是在北邮人上下载的,当然也可以去官网下载:
$ cd ~/Download
$ bash Anaconda3-5.1.0-Linux-x86_64.sh
中途会让你选择安装路径,直接yes选择默认路径即可,后面的安装也类似,中途会有安装VS Code的选项,根据你的需求选择,我反正是选了yes:
$ source ~/.bashrc
给conda换源以加速其下载包的速度:
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
$ conda config --set show_channel_urls yes
3.安装Nvidia-driver
这部分本来是最坑的了,但是踩了这么多的坑,相信按照如下方式来,没什么问题,亲测两次:
这是1070的驱动下载:http://www.nvidia.com/download/driverResults.aspx/132530/en-us
或者去:http://www.nvidia.cn/Download/index.aspx?lang=cn选择你相应的硬件驱动
3.1 卸载旧驱动(就算没有驱动也可以执行,如果有旧驱动一定要执行):
$ sudo apt-get autoremove --purge nvidia-*
3.2 禁用nouveau,添加黑名单
$ cd /lib/modules/4.13.0-38-generic/kernel/drivers/gpu/drm/nouveau
$ sudo cp nouveau.ko nouveau.ko.org
$ cd /etc/modprobe.d
$ sudo vim blacklist-nouveau.conf
没有 vim 的话需要安装,在文件中写入:
blacklist nouveau
options nouveau modeset=0
:wq # 保存
3.2.3 重新生成 kernel initramfs:
$ sudo update-initramfs -u
$ sudo reboot
3.3 关闭x-server
上面重启之后,分辨率会变得感人,不用急,马上就可以使用nvidia的驱动了,先按ctrl + alt + f1进入text mode:
$ sudo service lightdm stop 或者 sudo lightdm stop
$ sudo init 3
3.4 安装nvidia驱动
$ cd ~/Downloads
$ sudo chmod a+x NVIDIA-Linux-x86_64-390.48.run
$ sudo sh ./NVIDIA-Linux-x86_64-390.48.run -no-x-check -no-nouveau-check -no-opengl-files
$ sudo reboot
这是在进入系统就会发现分辨率正常了,ctrl + alt + t 启动终端:
$ nvidia-smi
出现如下界面就是驱动安装成功了!
4 安装CUDA9.1
下载链接:
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=runfilelocal
$ sudo chmod a+x cuda
$ sudo sh cuda_9.1.85_387.26_linux.run
中间会有一些选项,因为driver我们已经装过了,所以选择n就可以,我没有试过直接在这里驱动和cuda一步到位,如果要这么装,应该也不能少上面装driver的步骤,我的选择如下:
导入环境变量:
$ echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
$ echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
$ source ~/.bashrc
$ nvcc -V
能看见版本信息,就说嘛安装成功了。
CUDA测试:
$ cd NVIDIA_CUDA-9.1_Samples
$ sudo make # 等十分钟左右
$ cd bin/x86_64/linux/release
$ sudo ./deviceQuery
如上Result为PASS。
5. 安装PyTorch
如果上面安装都没有问题的话,这里只需要一条命令即可,速度慢可以检查上面Anaconda换源有没有问题:
$ conda install pytorch torchvision cuda91 -c pytorch
6. 安装OpenNMT
Github地址:https://github.com/OpenNMT/OpenNMT-py
$ cd ~/Downloads
$ git clone https://github.com/OpenNMT/OpenNMT-py.git
装好以后执行:
pip3 install -r requirements.txt
准备数据:
python preprocess.py -train_src data/src-train.txt -train_tgt data/tgt-train.txt -valid_src data/src-val.txt -valid_tgt data/tgt-val.txt -save_data data/demo
训练模型:
$ python train.py -data data/demo -save_model demo-model -gpuid 0
此时可以通过nvidia-smi监控到gpu已经跑起来了
至此,整个安装部署过程已经全部完后了,有问题的读者可以留言,最后happy一下,看看训练出来的翻译效果,由于语料库太小,模型的翻译效果自然不忍直视。
在使用1,720,000语句再次训练后: