目录
一、开篇
笔者近期需要对NLP领域论文中的一些模型进行复现,打算创建一个新的环境进行实验,简单记录一下这个过程。本文包括虚拟环境创建以及导库的一系列流程,特别是关于pytorch的安装。
二、python版本
查看python版本,用于创建环境时选择相应的版本。在学习机器学习和深度学习前,大家可能已经下载过python并配置了环境变量。但是可能时间久远,已经忘记了当时的版本号。
搜索cmd打开命令窗口,并输入(注意V是大写)查看版本号:
python -V
如下:
可以看到版本为3.8。
三、创建虚拟环境并使用
(1)打开Anaconda Prompt
初始都是默认进入base环境,下面罗列一些常用指令:
conda list #查看当前环境已经有的库
conda env list #查看已有虚拟环境
activate (环境名) #激活环境
pip install (需导入的库名) -i https://pypi.tuna.tsinghua.edu.cn/simple #在自己想要的环境下导入需要的库,库名后面跟“==版本”可精确所要的版本号,否则使用默认,-i后面添加清华镜像源,导库先人一步
pip uninstall (需要删除的库名) #需要的库版本不对,删掉重来
(2)创建我的新环境mynlp (环境名自拟)
指令:
conda create -n (环境名) python=(自己的python版本号)
如下:
会有提示[y/n]?输入y即可。输入后会有一段加载进度条。
(3)激活环境
当我们创建好自己的环境后,需要激活环境,才能在指定环境中配置相应的库文件。
指令:
activate (环境名)
如下:
观察会发现激活环境后,前方的(base)环境,变成了我们激活的新创建的环境(mynlp),说明环境激活成功。
(4)导库
一般论文或者是日常项目,严谨的作者都会在项目中保留一个名为requirement.txt文件,其中会指明本文项目或模型所使用的库版本。运行其项目的代码,最好使用相同版本库,避免由于版本问题导致的代码运行出错。
下面我们开始依次导库。
指令:
pip install (需导入的库名) -i https://pypi.tuna.tsinghua.edu.cn/simple
如下演示如何导入指定版本accelerate==0.4.0:
pip install accelerate==0.4.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
在导入过程中,会有进度条提示,使用镜像源之后,速度会有较大提升,导入成功后会有Successfully等一串成功提示(没报错一般都是成功或者已经有库不用重复导库的提示)。
常用的一些镜像源如下,使用方法相同,跟在-i后面:
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple
豆瓣:http://pypi.douban.com/simple
中国科技大学:http://pypi.mirrors.ustc.edu.cn/simple
网易云:https://mirrors.163.com/pypi/simple
四、pytorch安装
在学习深度学习的过程中,总会使用主流框架中的一种,pytorch就是其中之一,由于其对不同硬件和操作系统有不同适配,因此其安装与其他库安装会有一些不同。
(1)查看CUDA版本(使用GPU训练)
根据自身电脑的CUDA版本,选择对应的pytorch版本。
输入指令:
nvidia-smi
如下:
可以看到笔者电脑中的CUDA Version为11.4,因此我在选择pytorch版本时不选择高于11.4的版本,直接选择11.4对应的版本。
(2)pytorch官网查看:
pytorch官网:https://pytorch.org/
下滑可以看到如下界面:
点击红色部分进入历史版本,进行进一步选择。本文论文使用的pytorch版本是torch==1.9.1,检索历史记录可以找到这个版本,并且它的CUDA版本要求是11.3(我是11.4)因此可以兼容。如果CUDA版本达不到要求,又想用论文项目对应的pytorch,可以选择CPU训练(如下图)。
(3)pytorch安装
根据自身需求从pytorch官网历史记录中找到相应版本,复制安装指令,在自己虚拟环境下进行安装即可。
例如笔者运行指令:
conda install pytorch==1.9.1 torchvision==0.10.1 torchaudio==0.9.1 cudatoolkit=11.3 -c pytorch -c conda-forge
下载时间会有一点久,耐心等待……
五、小结
笔者在学习的过程中,就环境问题其实也踩过不少坑,比如环境的库是否真正隔离,或者一些库导入的时候可能会影响到其他库等等。似乎解决的最好方式就是多练多搜,实在不行,那就删掉重新开始!在反复折磨的过程中,积攒的经验会让你走的更远。