虚拟环境的配置
正文
在配置环境中,难免会遇到各种各样的困难,本文章旨在不废话、以复现论文代码为唯一目的,通过给出指导来示范如何配置论文环境以尽可能实现复现论文代码、跑论文代码这一最终目标。(Windows系统)
注:作者为了方便展示便用自己跑通过的项目代码来进行讲解,无任何侵权之意。
第一步
打开作者在Github的代码网址,看起来很“眼花缭乱”,但我们的核心就在于绿色的方块那
然后根据指引复制URL(不要着急关此标签页!!!)
随后打开pycharm
跟随指引将项目代码“git”下来这部分需要一点时间,请耐心等待……
创建好了的之后的模样应该类似这样:
创建虚拟环境
很多人都对如何创建虚拟环境感到头疼,作者亦是如此。
首先,先回到刚才的Github界面,下拉找到Readme部分,大家可能会决定头疼:这么多英文(有可能)我怎么读得懂】读得过来啊……我还赶时间呢!(有可能)
别急,我们按关键词找
首先来了解一下Readme一般涵盖的内容
- 作者关于该项目的基本介绍(例如:我们这是什么项目、解决了什么问题等等)(可以快速扫一眼有个了解)
- 将该项目部署至你的电脑的操作步骤(核心)
- 你该如何使用该项目(核心)
- 用到了什么数据集(选择性的,因为有的项目不涉及数据集)
创建虚拟环境的具体步骤
这部分是在教你如何创建虚拟环境(该项目作者用的是Anaconda),想在pycharm内部用Anaconda则需要将自己在【官网】安装好的Anaconda部署至pycharm中,或者可就用pycharm系统内部原生的(.venv)(virtual environment),若是Anaconda,我们则需在pycharm的【Terminal / 终端】中【一行一行】运行上面灰色框中的bash脚本
第一行:
conda create-nmkunetenvpython=3.8conda意思是【在conda环境,也就是Anaconda中,conda是格式要求】,-n即是name的意思,表示创建的虚拟环境的名字为mkunetenv,而且我们知道单有pycharm是跑不了任何项目的(pycharm只是跑python项目的工具),我们需要python这个“语言”内置到pycharm中才可以跑代码,而在这个项目中,作者指定的是3.8版本【这里作者提一嘴:不要因为觉得3.8版本太老,我想要新的就非得不听话去下载3.9甚至更高的版本。因为一旦你这样干了,作者的代码你就极大概率跑不了——会是各种报错。原因是作者之所以能跑通ta的项目,是因为ta的环境让ta得以跑通,ta将需要的环境的需求分享与你,你怎能辜负作者的期待呢是不是?】
第二行:
conda activate mkunetenv没什么好说的,就是激活你刚才创建的虚拟环境
【注意!】必须得是这样才算是创建且激活成功!一定记得检查!
后三行:就是在通过pycharm中内置的pip这个工具安装跑通项目需要的【模块包】以及依赖(requirement.txt),依赖是项目作者自己已经写好了的【关于torch的安装的讲解,本作者已另写一篇,在此不再赘述】
pycharm内置版
创建虚拟环境:
python-mvenv mkunetenv激活虚拟环境:(Linux / macOS / WSL)
sourcemkunetenv/bin/activate激活虚拟环境:(Windows CMD)
mkunetenv\Scripts\activate.bat激活虚拟环境:(Windows Power Shell)
mkunetenv\Scripts\Activate.ps1跑模型
在pycharm的终端中,我们面临2种方向
直接使用作者提供的预训练权重跑测试
优点:可快速验证代码是否能正确跑通、复现
缺点:有的作者提供了很多预训练权重,新手很容易分不清
建议:选择作者提供的带有best标识符的权重,用于快速验证模型。
用带有best的预训练权重的情况:(适合自己迁移学习)
1. 模型部署与上线:带有best的预训练权重在验证集上性能最优,泛化能力最强,适合直接用于生产环境。
2. 作为新任务的预训练权重:带有best是预训练权重代表模型学到的最鲁棒的特征表示,是迁移学习的最佳起点。
3. 论文或竞赛提交:带有best的预训练权重对应最高指标,符合评测标准。
用带有latest的标识符的情况:
1. 恢复训练在
2. 原有基础上微调
总结:- 选 best.pt:只要你的目的是使用模型。包括但不限于:推理部署、API服务、竞赛提交、论文评测,以及将他人权重作为新数据集的迁移学习起点。
- 选 last.pt:只有当你的目的是恢复训练。特指:训练中断后的断点续训,或在完全相同的数据集与任务配置下追加 Epoch。
自己开始跑【Trainng+Testing】
优点:自己动手跑模型,训练出来的是属于自己的权重,最适配自己的环境。
缺点:耗时长且容易在中途报错,由于报错情况繁多,需要作者具备一定的调试能力,才能“独立”(可跟专业智能体交流解决)。
其中一些小细节的讲解:
cd into意思是进入……目录/文件夹中,一般为模型所在的目录/文件夹
