MinkowskiEngine是一个开源的自动微分库,专门为高维稀疏张量而设计,可以用于深度学习中的卷积、池化和全连接操作。它是针对高维空间中的稀疏数据设计的,例如在点云处理和图像分析中常见的数据类型。
以前由于 Visual Studio 编译器(例如 #pragma atomic)中对 OpenMP 指令的支持问题,其 CPU 版本的 Minkowski 引擎无法在 Windows 上运行。但是,从 Visual Studio 版本 17.4(2022 年 11 月)开始,添加了对其中许多说明的支持。因此,只需修改 setup.py 文件,就可以完美地编译 Minkowski Engine 的 CPU 版本。
第一种方法(比较繁琐)
要求:
• Visual Studio 2022 (>17.4)
• Python >3.8
PyTorch (1.13.1) 和 CUDA 11.7
安装过程的第一步是使用 Visual Studio 编译和安装 OpenBLAS for Windows。
• https://www.openblas.net/
将 openblas.lib 复制到 Minkowski Engine 文件夹。
下一步是将 setup.py 文件替换为提供的文件。此外,还必须安装 ninja 和 open3d(仅适用于分段示例)。
因此完整步骤如下:
在Windows环境下,使用Visual Studio 编译和安装 OpenBLAS(怎么编译详见公众号)
打开anaconda终端
git clone https://github.com/NVIDIA/MinkowskiEngine.git
cd MinkowskiEngine
将编译和安装OpenBLAS后生成的 openblas.lib 文件复制到 MinwokskiEngine 文件夹
将 setup.py 文件中的代码替换为下面的代码。
conda create -n env_name python=3.10
conda activate env_name
conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
pip install ninja open3d
python setup.py install bdist_wheel --blas_include_dirs=“include_blas_dir” --blas=openblas --cpu_only
第二种方法安装MinkowskiEngine库
要求:
python=3.10
PyTorch (1.13.1) with CUDA 11.7 (CUDA 11.6 也可以,我的11.6安装成功了)
Visual Studio 2022 (>17.4)
具体步骤为:
conda create -n py3-mink-cu117 python=3.10
conda activate py3-mink-cu117
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia
下载安装包(要是直接复制进去在浏览器下载不了就用迅雷下载)
https://github.com/NVIDIA/MinkowskiEngine/files/10931944/MinkowskiEngine-0.5.4-py3.10-win-amd64.zip
下载下来后是个压缩包,把它解压到一个文件夹中
然后在anaconda prompt终端中cd到解压目录执行
pip install MinkowskiEngine-0.5.4-cp310-cp310-win_amd64.whl
命令即可安装成功
setup.py文件中的代码如下:
r"""
Parse additional arguments along with the setup.py arguments such as install, build, distribute, sdist, etc.
Usage:
python setup.py install <additional_flags>..<additional_flags> <additional_arg>=<value>..<additional_arg>=<value>
export CC=<C++ compiler>; python setup.py install <additional_flags>..<additional_flags> <additional_arg>=<value>..<additional_arg>=<valu