DrQA安装及常见问题解决

最近导师要求安装这个项目,本人在网上找了一些教程都只有一下简略的安装方法,也并没有说明一些常见的故障该如何来解决,所以本人这篇博客算是记录了我这几天的安装心得。

关于项目介绍这里就不细说了,直接进入正题,这里项目需要在Linux的环境下进行安装,且python版本需要在3.5以上,所以如果用Windows的装一个双系统吧,也不要尝试在虚拟机里面使用,内存消耗很大,虚拟机用起来会很卡。本人是在Windows 10下安装了Ubuntn 17.10。详细安装过程就不细说了,网上有很多。注意安装的时候,为了之后操作更加方便,尽量将系统盘设置60G以上。

这里可以先参考DrQA的官方的项目地址。但是安装过程不是很详细。我这里从0开始慢慢说起。

首先需要安装Linux版本的Anaconda3,大家可以直接到官网上去下载,然后用sudo gedit /etc/profile, 在打开的文件的最后加上exportPATH=/your path/anaconda3/bin:$PATH 即你的安装路径,然后重启即可。注意有的在root用户下使用gedit命令时可能会出现没有协议,拒绝连接的错误,此时我们在切换到root用户之前执行xhost + 在切换到ROOT下就没问题了。

 然后我们在终端中运行python时需要注意此时运行的python是否是刚才下载的python。需要特别注意第一行的版本信息。

之后需要安装Pytorch,可以去官网根据自身的环境条件来在主页右边选择合适的版本。我选择的是Linux ,安装方式conda, python3.6,  cuda 9 ,然后就可以复制下方出现的命令直接运行自动下载安装了,如果选择和我一样的版本就可以直接运行

conda install pytorchvision cuda90 -c pytorch

来直接在线安装。比较方便,由于国内网络环境不好,下载安装时间比较长,不过据说早上的速度比较快,最好挂机来下载安装。网上还有一些可以离线安装的方法可以自行百度。装好之后我们在python里运行import torch来检测是否安装成功,如果没有报错,说明成功。

安装好这些之后就可以正式开始DrQA的安装了,运行

git clone https://github.com/facebookresearch/DrQA.git

cd DrQA; pip install -r requirements.txt; python setup.pydevelop

这样可以从项目源码网站上copy过来源码进行安装。项目需要安装CoreNLP。你可以执行

./install_corenlp.sh

来下载安装,然后按照前面的方法将安装路径加入到环境变量中

export CLASSPATH=$CLASSPATH:/path/to/corenlp/*

即可。注意,需要安装JAVA 8以上才能正常运行,安装JAVA的过程就不细说了。

安装完成后可以通过运行以下命令来测试是否安装成功。

from drqa.tokenizers import CoreNLPTokenizer

tok = CoreNLPTokenizer()

tok.tokenize('hello world').words()  # Should complete immediately

如果成功的话这段命令应该几秒内就应该执行完成。

 

之后需要下在提供的训练模型和数据,如果按照官方的提供的方法运行

./download.sh

来下载,大小7.5G,速度会很慢,我耗时一天已经把资源存到我的百度网盘里,有需要的可以评论或者私信我。

下载好后,为了方便起见,就放到DrQA文件夹内,然后解压,大小25G。不要动其中的文件。

这样就算是安装完成了,我们可以运行

python scripts/pipeline/interactive.py

来查看结果。但是有些可能会报内存错误的信息。这是由于这个项目至少需要16G的内存才能正常运行,有条件的话,我们可以安装大内存条来解决,如果没条件我们可以增加虚拟内存来解决。不过这样运行起来就很慢。增加虚拟内存方法可以参考此文章,根据本机的内存大小来分配合适的虚拟内存。这样分配完成后,在运行的话,有的还是会出现不能分配内存(OSError: [Errno 12] Cannot allocate memory)的错误,可以在开始运行之前先执行下列命令:

pip install spacy &&python -m spacy download en

echo 1 >/proc/sys/vm/overcommit_memory

然后在重新开始执行 python scripts/pipeline/interactive.py或者pythonscripts/pipeline/interactive.py --tokenizer regexp

此时就应该可以正确运行了。

如果还有什么问题可以私信或者下方评论我。我看到会及时回复。谢谢!


你可能感兴趣的:(DrQA安装及常见问题解决)