今天在使用代码的过程中,感觉环境有点小瑕疵,正好最近也没什么事情,就准备把环境铲掉重新装一遍完美的过程,也借此机会也一份笔记,给大家参考!
首先我是win11的系统,2060的显卡,准备装GPU版本的Pytorch和openmmlab。
Pytorch | 2.3.0 | |
Python | 3.9 | |
CUDA | 11.5 |
1 Anaconda
1.1 下载安装
-
运行安装程序 双击下载的
.exe
文件,启动安装程序。 -
欢迎界面 在欢迎界面,点击 “Next” 按钮继续。
-
许可协议 阅读许可协议并选择 “I Agree” 接受许可协议,继续点击 “Next”。
-
选择安装类型 选择 “Just Me (recommended)” 或 “All Users (requires admin privileges)”,然后点击 “Next”。
-
选择安装位置 选择安装位置或使用默认路径,然后点击 “Next”。
-
选择安装选项 勾选 “Add Anaconda to my PATH environment variable” 和 “Register Anaconda as my default Python 3.x”,然后点击 “Install”。
-
等待安装完成 等待安装程序完成安装过程,这可能需要几分钟时间。
-
完成安装 安装完成后,点击 “Next”,然后点击 “Finish” 退出安装程序
1.2 验证安装
-
打开终端(或 Anaconda Prompt) 在 Windows 上,可以打开 Anaconda Prompt。在 macOS 和 Linux 上,打开终端。
-
验证安装 在终端中输入以下命令:conda --version
你应该会看到 Anaconda 的版本号,这表示安装成功。
我在安装过程中遇到的问题:
1、Navigator 提示环境错误
解决方法:更新Navigator,点击ok后自动弹出更新框,或者自己点右上角Upgrade。再次打开后一切显示正常。
2、系统命令符找不到conda命令
解决方法:添加系统环境变量,首先确认你安装的anaconda绝对路径。然后打开编辑系统环境变量。点击环境变量 >> 系统环境变量 >> Path >> 新建三个路径:
C:\Users\<YourUsername>\Anaconda3
C:\Users\<YourUsername>\Anaconda3\Scripts
C:\Users\<YourUsername>\Anaconda3\Library\bin
然后再次验证:
1.3 创建虚拟环境
因为我需要使用anaconda安装多个版本的pytorch以及python版本,所以不想占用本地环境,以免崩溃所以需要创建虚拟环境。
首先Anaconda 创建的虚拟环境默认存储在其安装目录下的 envs
文件夹中。具体路径因操作系统和安装位置而异。
看下我的路径:
然后我直接创建虚拟环境:采用python版本为3.9。
conda create --name pytorch_openmmlab python=3.9
这里看到它安装的路径是在C盘,我想要换到anaconda的目录下,所以取消了,重新设置一下。
找到这个文件:C:\Users\<YourUsername>\.condarc
如果没有可以自己创建。
添加以下内容并保存:
envs_dirs:
- /path/to/your/custom/envs
然后重新创建虚拟环境。
然后你会发现又失败了!哈O(∩_∩)O哈哈~
经过一番探查,是因为指定目录的文件对于用户来说权限不足,要给更多的权限,所以找到你指定的文件,右击属性--》安全--》选择电脑用户User --》把下面几个权限都打上对钩,特殊权限不需要,然后再创建虚拟环境即可完成。
进入环境正常
然后需要开始安装Pytorch
2 Pytorch
手下进入到我们自己的虚拟环境。因为我要安装的是一个GPU版本的,所以需要提前配置好了CUDA,执行:nvcc --version 查看自己的cuda版本。
CUDA的配置大家可以再Pytorch界面一直下拉看到后面的 BUILDING FROM SOURCE有介绍
可以去操作一下。
下面继续我的安装:
我们可以看到Pytorch官方给的对应的版本,是11.8,不过你可以修改后面的URL看有没有你对应的版本,我的运气还不错有11.5的版本。https://download.pytorch.org/whl/cu115
然后在虚拟环境中执行他给的命令。文件有几个G,有点慢,摸会鱼吧(可能有其他下载源,我没尝试,主要是时间不急hhh)。
安装完成后 pip list
或者 conda list
然后执行验证:
可以看到安装成功。后面的内容可能大家不一定能用到,是我自己需要使用的框架。
3 openmmlab
3.1 MMengine
安装流程地址:GitHub - open-mmlab/mmengine: OpenMMLab Foundational Library for Training Deep Learning Models
3.1.1 Installation
pip install -U openmim
mim install mmengine
验证一下:
然后基础的引擎已经安装好了,后续需要什么模块在单独安装。
3.2 MMSegmentation
最全面的语义分割开源工具箱
- 支持多样的语义分割网络方法
- 模块化设计
- 以更短的训练时间获得更高的模型性能
- 为语义分割提供统一的训练/推理流程
3.2.1 Installation
我选择了从源码安装的方式。
首先安装依赖:
pip install -U openmim
mim install mmengine
mim install "mmcv>=2.0.0"
mmcv的版本可能要调整,如果出现报错要重新安装指定版本。
git clone -b main https://github.com/open-mmlab/mmsegmentation.git cd mmsegmentation pip install -v -e .
另外github上还有简易安装方式和自定义安装方式:mmsegmentation/docs/en/get_started.md at main · open-mmlab/mmsegmentation · GitHub
验证安装
mim download mmsegmentation --config pspnet_r50-d8_4xb2-40k_cityscapes-512x1024 --dest .
下载将需要几秒钟或更长时间,具体取决于您的网络环境。完成后,您将 pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth
在当前文件夹中找到两个文件 pspnet_r50-d8_4xb2-40k_cityscapes-512x1024.py
。
python demo/image_demo.py demo/demo.png configs/pspnet/pspnet_r50-d8_4xb2-40k_cityscapes-512x1024.py pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth --device cuda:0 --out-file result.jpg
执行完成后会在当前目录下生成一个图片。
3.2.2 准备数据集
mmsegmentation/docs/en/user_guides/2_dataset_prepare.md at main · open-mmlab/mmsegmentation · GitHub
在这个网站下有多个可供训练的数据集,随便选择一个使用,我是根据B站一个UP的操作选择了小数据集:CHASE DB1
下载完成后,需要把数据转换为mmsegentation格式,官方提供了转换方法,在你的mmsegentation安装目录下有一个tools/dataset_converters/chase_db1.py 文件,执行下面命令该脚本将自动创建目录结构。文件下将出现转换好的数据集。
python tools/dataset_converters/chase_db1.py {zip.path}
# {zip.path}是你的数据集文件绝对路径
官方提供 tools/train.py
在单个 GPU 上启动训练作业的功能。基本用法如下。
python tools/train.py ${CONFIG_FILE} [optional arguments]
${CONFIG_FILE} :是你的数据集对应的训练脚本,需要你去config/下找一下不同网络结构对应的脚本。比如:
python D:\USER\openmmlab\mmsegmentation\tools\train.py D:\USER\openmmlab\mmsegmentation\configs\unet\unet-s5-d16_deeplabv3_4xb4-ce-1.0-dice-3.0-40k_chase-db1-128x128.py
[optional arguments] 这个可选择选项建议大家去官方文档里面学习:
Tutorial 4: Train and test with existing models — MMSegmentation 1.2.2 documentation
下面给出几个:
-
--work-dir ${WORK_DIR}
: Override the working directory.--work-dir ${WORK_DIR}
:覆盖工作目录。 -
--amp
: Use auto mixed precision training.--amp
:使用自动混合精度训练。 -
--resume
: Resume from the latest checkpoint in the work_dir automatically.--resume
:自动从work_dir中的最新检查点恢复。 -
--cfg-options ${OVERRIDE_CONFIGS}
: Override some settings in the used config, and the key-value pair in xxx=yyy format will be merged into the config file. For example, ‘–cfg-option model.encoder.in_channels=6’. Please see this guide for more details.--cfg-options ${OVERRIDE_CONFIGS}
:覆盖已用配置中的部分设置,xxx=yyy 格式的键值对会合并到配置文件中。例如,'–cfg-option model.encoder.in_channels=6'。
下面是开始训练的截图:
希望各位大佬以后多多交流openmmlab相关问题!加油!