设置指南
本文档介绍了如何设置所有依赖项,并可选择创建虚拟机,以运行此存储库中的笔记本。
目录
安装
要安装此存储库及其依赖项,请按照以下简单步骤操作
-
(可选)安装 Anaconda(Python >= 3.6)。Miniconda。如果在数据科学虚拟机上工作(请参阅计算环境部分),可以跳过此步骤。
- 克隆存储库
git clone https://github.com/Microsoft/computervision-recipes
- 安装 conda 环境,您可以在根目录中找到
environment.yml
文件。要构建 conda 环境cd computervision-recipes conda env create -f environment.yml
- 激活 conda 环境并将其注册到 Jupyter
conda activate cv python -m ipykernel install --user --name cv --display-name "Python (cv)"
- 启动 Jupyter 笔记本服务器
jupyter notebook
- 此时,您应该能够运行各种场景文件夹中的笔记本。
pip install
作为上述步骤的替代方案,如果您只想安装“utils_cv”库(而不创建新的 conda 环境),可以使用 pip install 完成。请注意,这不会下载笔记本。
pip install git+https://github.com/microsoft/ComputerVision.git@master#egg=utils_cv
系统要求
要求
- 运行 Linux (建议) >= 16.04 LTS 或 Windows 的机器
- Miniconda 或 Anaconda,Python 版本 >= 3.6。
- Azure DSVM 已预安装此项,因此可以直接运行以下步骤。
- 建议将 conda 更新到最新版本:
conda update -n base -c defaults conda
请注意,PyTorch 在 Windows 上的运行速度比在 Linux 上慢。这是一个已知问题,它会影响模型训练,并且是由于并行数据加载造成的。对于计算密集型训练任务(例如对象检测)和标准 GPU,这种差异通常低于 10%。然而,对于图像分类,如果使用快速 GPU(例如 V100)并可能使用大图像,Windows 上的训练速度可能比 Linux 慢数倍。
依赖项
确保您的机器上安装了 CUDA Toolkit 9.0 或更高版本。您可以在终端中运行以下命令进行检查。
nvcc --version
如果您没有 CUDA Toolkit 或版本不正确,请从此处下载:CUDA Toolkit
计算环境
许多计算机视觉场景的计算量都非常大。训练模型通常需要一台具有强大 GPU 的机器,否则会太慢。
最简单的入门方法是使用 Azure 数据科学虚拟机 (DSVM)。此 VM 将安装运行此存储库中笔记本所需的所有系统要求。如果您选择此选项,则可以跳过本指南中的系统要求步骤,因为这些要求已预安装在 DSVM 上。
在创建 Azure DSVM 之前,您需要决定要哪种 VM 大小。有些 VM 有 GPU,有些有多个 GPU,有些根本没有 GPU。对于此存储库,我们建议选择大小为 Standard_NC6_v3 的 Ubuntu VM。Standard_NC6_v3 使用 Nvidia Tesla V100,这将帮助我们训练计算机视觉模型并快速迭代。
对于 Azure 新用户,您的订阅可能没有 GPU 配额。您可能需要进入 Azure 门户增加 GPU VM 的配额。在此处了解更多操作方法:https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits。
以下是一些创建 DSVM 的方法
使用 Azure 门户或 CLI 预配数据科学 VM
您还可以直接使用 Azure 门户启动数据科学 VM。为此,请按照此链接操作,该链接将向您展示如何通过门户预配数据科学 VM。
您也可以使用 Azure 命令行 (CLI)。按照此链接了解有关 Azure CLI 及其如何用于预配资源的更多信息。
虚拟机生成器
创建 DSVM 的一种简单方法是使用位于存储库根目录中“contrib”文件夹内的 VM Builder 工具。请注意,此工具仅在 Linux 和 Mac 上运行,并且维护不佳,可能会停止工作。只需在存储库的根目录运行 python contrib/vm_builder/vm_builder.py
,此工具将使用适用于此存储库的适当设置预配置您的虚拟机。
隧道
如果您的计算环境位于云中的 Linux VM 上,您可以使用以下命令从 VM 到本地计算机打开一个隧道
$ssh -L local_port:remote_address:remote_port <username>@<server-ip>
例如,如果我想在我的 VM 上运行 jupyter notebook --port 8888
,并且我希望在我的本地浏览器上运行 Jupyter 笔记本 localhost:9999
,我将使用以下命令 SSH 到我的 VM
$ssh -L 9999:localhost:8888 <username>@<server-ip>
此命令将允许您的本地机器的端口 9999
访问您的远程机器的端口 8888
。