在macOS/Windows配置YOLOV5+PyCharm环境

/ 0评 / 3

Anaconda

Anaconda 是用于一站式管理 Python 环境的,它可以创建一些独立的 Python 环境以便我们开发使用。

官方网站:https://www.anaconda.com/

安装Anaconda

macOS 当前最新版安装包:https://repo.anaconda.com/archive/Anaconda3-2021.05-MacOSX-x86_64.pkg

Windows 当前最新版安装包:https://repo.anaconda.com/archive/Anaconda3-2021.05-Windows-x86_64.exe

下载后直接安装,安装完成后会自动帮我们添加环境变量:

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/feng/opt/anaconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/Users/feng/opt/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/Users/feng/opt/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/Users/feng/opt/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

我们打开终端,发现命令行前面有一个 (base),这就是默认的虚拟环境的名称。

如果是在 Windows 环境,则需要通过安装成功后生成的快捷方式 Anaconda Powershell Prompt (Anaconda3)

查看 conda 版本和当前环境的 Python 版本:

Last login: Mon Aug 30 14:49:48 on ttys002
(base) ➜  ~ conda --version
conda 4.10.1
(base) ➜  ~ python -V
Python 3.8.8

为了避免其他错误,第一次安装好后,可以先更新一次:

(base) ➜  ~ conda upgrade --all

创建虚拟环境

前面有提过,Anaconda 可以创建独立的虚拟环境,我们就给 YOLO 创建一个环境。

我们可以通过图形界面程序 Anaconda-Navigator 或命令行的方式来创建,这里我们采用命令行的方式。

可以指定具体的 Python 版本,也可以版本号不给全,他会自动去找未给出的部分的最新版本:

conda create -n yolo-v5 python=3.8.8

查看虚拟环境列表:

(base) ➜  ~ conda env list
# conda environments:
#
base                  *  /Users/feng/opt/anaconda3
yolo-v5                  /Users/feng/opt/anaconda3/envs/yolo-v5

切换到我们创建的虚拟环境:

(base) ➜  ~ conda activate yolo-v5
(yolo-v5) ➜  ~

配置国内镜像源

在安装第三方包之前,需要先配置下国内的镜像源,或者用科学上网方式。

# 在搜索时包显示镜像源
(yolo-v5) ➜  ~ conda config --set show_channel_urls yes
# 配置SSL校验
(yolo-v5) ➜  ~ conda config --set ssl_verify yes
# 显示配置
(yolo-v5) ➜  ~ conda config --show

查看当前使用的镜像列表 channels

(yolo-v5) ➜  ~ conda config --show channels
channels:
  - defaults

移除镜像源:

(yolo-v5) ➜  ~ conda config --remove-key channels

修改家目录下的 .condarc 文件:

channels:
  - defaults
show_channel_urls: true
ssl_verify: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

清除索引缓存,保证用的是镜像站提供的索引:

(yolo-v5) ➜  ~ conda clean -i

管理第三方包

第三方包管理

安装和卸载第三方包:

# 安装第三方包
conda install 第三方包名称
# 或
pip install 第三方包名称

# 卸载第三方包
conda remove 第三方包名称
# 或
pip uninstall 第三方包名称

查看当前虚拟环境中安装的所有第三方包:

(yolo-v5) ➜  ~ conda list

导出当前环境的包信息:

conda env export > environment.yaml

重新创建一个相同的虚拟环境:

conda env create -f environment.yaml

开始安装YOLO需要的包

安装 pytorch,官网:https://pytorch.org/

通过官网进入 Get Started,根据自己的环境自由配置,得到安装命令。

因为我使用 CPU 训练,则需使用下面安装命令:

(yolo-v5) ➜  ~ conda install pytorch torchvision torchaudio -c pytorch

但是,如果系统是 Windows 且有 NVIDIA 显卡,则还需要安装 CUDA + cuDNN

CUDA 下载地址:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

cuDNN 下载地址:https://developer.nvidia.com/rdp/cudnn-archive

先安装 CUDA,然后再下载 cuDNN,最后将 cuDNN 解压后的文件拷贝到 CUDA 安装目录下同名的文件夹下即可。

并且 pytorch 也需要根据自己的环境执行对应的安装命令,显卡是 2070s,所以使用 11.1

conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c conda-forge

下载yolov5

GitHub地址:https://github.com/ultralytics/yolov5

我们下载最新 Release 版的源码和训练的权重文件:

使用 PyCharm 打开项目,如果弹出配置环境的弹窗,直接取消。

在项目 Python Interpreter 中添加我们直接创建的 conda 虚拟环境:

添加运行配置,指定 train.py 脚本:

点击 Install requirements 安装项目依赖的第三方包:

最后运行 train.py 脚本开始训练。至此,我们的 YOLOV5 环境就配置完成了:

conda常用命令

activate                        # 切换到base环境
conda create -n learn python=3  # 创建一个名为learn的环境并指定python版本为3(的最新版本)
activate learn                  # 切换到learn环境
conda env list                  # 列出conda管理的所有环境
conda list                  # 列出当前环境的所有包
conda install requests          # 安装requests包
conda search requests(替换成需要查找的包名)       # 查看包的所有可安装版本
conda remove requests       # 卸载requets包
conda remove -n learn --all     # 删除learn环境及下属所有包
conda update requests       # 更新requests包

conda env export > environment.yaml  # 导出当前环境的包信息
conda env create -f environment.yaml    # 用配置文件创建新的虚拟环境

# conda清理
conda clean -p                  # 删除没有用的包
conda clean -t                  # 删除tar包
conda clean -y --all            # 删除所有的安装包及cache
conda clean -i              # 删除索引缓存.

PyCharm选择指定版本的包

常见错误

PackagesNotFoundError: The following packages are not available from current channels

在 PyCharm 中点击 Install requirements 安装第三方包,可能出现下图错误,这是由于网络问题导致的:

我们再次点击 Install requirements 按钮,会列出剩余还未安装的依赖包:

我们可以在终端手动安装这些第三方包并指定源地址,下面我用的是清华源。如果还是不能安装,可以尝试换其源。还不能安装的话,请使用科学上网方式:

(yolo-v5) ➜  ~ pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
(yolo-v5) ➜  ~ pip install thop -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
(yolo-v5) ➜  ~ pip install pycocotools -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn

MemoryError bad allocation

在 Windows 中,使用 GPU 训练,我遇到了这个错误。我的解决办法是将 Python 所在的磁盘的虚拟内存改大一些:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注