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 所在的磁盘的虚拟内存改大一些: