配置深度学习环境是一个十分复杂的工程,里面牵扯到非常多的库和工具,而且这些库和工具的版本之间还有很多的依赖关系。深度学习框架(如PyTorch)和相关库(如NumPy、Pandas)有许多依赖,确保这些依赖的版本兼容性对于避免运行时错误至关重要。
由于网络带宽和服务器位置的限制,一些深度学习框架及其依赖的库访问速度较慢,甚至无法访问。DLCV Installer 是一款专为深度学习开发者设计的深度学习环境配置工具,这套工具可以自动安装和配置下面提到的所有库和工具,并且这些库和工具的版本之间是兼容的,极大地简化了深度学习环境的搭建过程。无论是新手还是经验丰富的研究人员,DLCV Installer 都能帮助您快速、轻松地配置所需的软件和库,让您专注于模型开发和实验。
使用场景:
- 科研工作:研究人员可以快速搭建实验环境,专注于算法和模型的开发。
- 教育培训:教师可以利用该工具为学生准备统一的学习环境,降低技术门槛。
- 项目开发:开发者可以轻松创建和管理多个项目环境,提高工作效率。
深度学习环境介绍
在Windows系统上,我们大概需要配置以下几个库和工具:
- Python
- PyTorch
- TorchVision
- NumPy
- PyQt
- OpenCV
- Pillow
- Matplotlib
- Pandas
- Scikit-learn
- Scikit-image
- JupyterLab
- Onnxruntime
- openmmlab系列
- mmcv
- mmengine
- mmdeploy
- mmdet
- mmpretrain
- mmsegmentation
- mmpose
- CUDA
- CuDNN
- TensorRT
- OpenCV
- QT
- LibTorch
Python环境
https://python.org/
Python 环境是深度学习环境的基础,我们使用 Python 环境来运行深度学习程序。
PyTorch
PyTorch 是一个开源的深度学习框架,它提供了很多深度学习的算子,最重要的是可以自动求导,优化模型,必装。
https://pytorch.org/
TorchVision
https://pytorch.org/vision/
TorchVision 是 PyTorch 的一个扩展库,它提供了很多计算机视觉模型和算法的实现,比如 ResNet,Faster R-CNN 等,我们可以使用 TorchVision 来构建计算机视觉模型。
NumPy
https://numpy.org/
NumPy 是一个 Python 的数学计算库,它提供了很多数值计算的函数和类,比如向量、矩阵等,我们经常使用 NumPy 来计算均值、方差等统计量。
PyQt
PyQt 是一个 Python 的 GUI 库,它提供了很多 GUI 控件和布局管理器,我们可以使用 PyQt 来构建图形用户界面。
即使是算法工程师,也需要了解一些基本的 GUI 编程知识,因为我们经常需要编写一些小工具来辅助我们的工作。
OpenCV
https://opencv.org/
OpenCV 是一个开源的计算机视觉库,它提供了很多计算机视觉算法的实现,比如读取图像、二值化、边缘检测等,我们经常使用 OpenCV 来处理图像。
Pillow
https://python-pillow.org/
Pillow 是一个 Python 的图像处理库,它提供了很多图像处理的函数和类,比如缩放、旋转、裁剪等,openmmlab 系列库中的很多图像处理函数都是基于 Pillow 实现的。
Matplotlib
https://matplotlib.org/
Matplotlib 是一个 Python 的绘图库,它提供了很多绘图函数和类,我们可以使用 Matplotlib 来做模型预测结果的可视化。
Pandas
https://pandas.pydata.org/
Pandas 是一个 Python 的数据处理库,它提供了很多数据处理的函数和类,比如读取 CSV 文件、合并数据集等,我们经常使用 Pandas 来写出表格。
Scikit-learn
https://scikit-learn.org/
Scikit-learn 是一个 Python 的机器学习库,它提供了很多机器学习算法的实现,比如线性回归、SVM 等,但是我们平时很少使用里面的模型,因为我们主要做深度学习。安装这个库主要是为了做数据预处理,比如划分数据集等。
Scikit-image
https://scikit-image.org/
Scikit-image 是一个 Python 的图像处理库,它提供了很多图像处理的函数和类,比如边缘检测、形态学操作等,有时遇到 OpenCV 没有的算子,我们可以使用 Scikit-image 的算子来处理图像。
JupyterLab
https://jupyter.org/
JupyterLab 是一个交互式的 Python 编程环境,它可以在浏览器中运行 Python 代码,我们可以使用 JupyterLab 写一些小程序,比如数据分析、数据预处理等。
它和直接运行 Python 代码不一样的地方在于,它上一句代码运行的结果,不会自动消失,就像 matlab 一样,我们在处理数据集的时候,可以不必每次运行都重新加载数据集。
另外在 JupyterLab 中,我们可以交互式输出图像、表格等,在数据集分析的时候非常方便。
Onnxruntime
https://onnxruntime.ai/
Onnxruntime 是一个开源的深度学习推理库,它支持 ONNX 格式的模型,我们在 LabelmeAI 标注的时候,需要用到这个库加载模型,然后进行推理。
openmmlab 系列
https://github.com/open-mmlab
openmmlab 系列是一个开源的深度学习库,它提供了很多深度学习模型和算法的实现,比如 mmpretrain 里的 ResNet,mmdet 里的 Faster R-CNN 等,我们可以使用 openmmlab 系列来构建深度学习模型。
mmcv
https://github.com/open-mmlab/mmcv
mmcv 是 openmmlab 搭建模型时用的基础库,它提供了很多深度学习模型的基础算子,比如 ROI Pooling,NMS 等。如果使用 mmdet、mmpose 等库,必须安装 mmcv 的 CUDA 版本。
mmengine
https://github.com/open-mmlab/mmengine
mmengine 也是 openmmlab 的基础库,它提供了 C++ 之外的基础框架,比如配置文件解析、模型保存、数据加载等功能。
mmdeploy
https://github.com/open-mmlab/mmdeploy
mmdeploy 是 openmmlab 的部署库,它提供了很多模型部署的功能,可以把类似 ResNet、Mask R-CNN 这样的模型转换为 TensorRT 格式,加速模型推理速度。
mmdetetection
https://github.com/open-mmlab/mmdetection
mmdetetection 是 openmmlab 的目标检测库,它提供了很多目标检测模型的实现,比如 Faster R-CNN、Mask R-CNN 等,我们可以使用 mmdet 来构建目标检测模型。
mmpretrain
https://github.com/open-mmlab/mmpretrain
mmpretrain 是 openmmlab 的分类模型库,它提供了很多分类模型的实现,比如 ResNet、MobileNet 等,我们可以使用 mmpretrain 来构建分类模型。
mmsegmentation
https://github.com/open-mmlab/mmsegmentation
mmsegmentation 是 openmmlab 的图像分割库,它提供了很多图像分割模型的实现,比如 DeepLabV3、PSPNet 等,我们可以使用 mmsegmentation 来构建图像分割模型。
mmpose
https://github.com/open-mmlab/mmpose
mmpose 是 openmmlab 的人体姿态估计库,它提供了很多关键点模型的实现,比如 HRNet 等,我们可以使用 mmpose 来构建关键点模型。
NVIDIA 相关
CUDA
https://developer.nvidia.com/cuda-toolkit
https://developer.nvidia.com/cuda-12-1-0-download-archive
CUDA 是 NVIDIA 推出的并行计算平台和编程模型,它可以利用 GPU 的并行计算能力,加速深度学习模型的训练和推理。
CuDNN
https://developer.nvidia.com/cudnn
https://developer.nvidia.com/rdp/cudnn-archive
CuDNN 是 NVIDIA 推出的深度神经网络加速库,它提供了很多深度学习算子的实现。
TensorRT
https://developer.nvidia.com/tensorrt
https://developer.nvidia.com/nvidia-tensorrt-8x-download
TensorRT 是 NVIDIA 推出的深度学习推理加速库,它可以把深度学习模型转换为 TensorRT 格式,加速模型推理速度。部署必装。
C++ 相关
OpenCV
https://opencv.org/
OpenCV 是一个开源的计算机视觉库,它提供了很多计算机视觉算法的实现,比如读取图像、二值化、边缘检测等。
QT
https://www.qt.io/download-dev
QT 是一个跨平台的 C++ 应用程序开发框架,它提供了很多 GUI 控件和布局管理器,我们可以使用 QT 来构建图形用户界面。
LibTorch
https://pytorch.org/
https://pytorch.org/cppdocs/installing.html
LibTorch 是 PyTorch 的 C++ 前端,它提供了很多深度学习算子的实现,我们可以使用 LibTorch 的算子来处理数据。
下载链接
https://dlcv.com.cn/
这套工具的使用方法非常简单,只需要运行一个安装程序,然后按照提示操作即可。