MinkowskiEngine安装总结

MinkowskiEngine(ME)是计算稀疏张量常用的库,但是官方文档里安装这个库的坑还是蛮多的。本来看到CVPR2022的REGTR这篇文章想先看看作者模型的实际效果怎么样,结果环境配置这一块就折腾好几天,从cuda11.1到cuda11.3都尝试了一遍,最后总结出一些安装心得。(现在配这个环境我真的是熟练工2333)

准备工作

安装合适的cuda

安装ME之前先确定cuda版本,建议使用cuda11.1,这是多次尝试之后最靠谱的版本!安装不同版本的cuda这一参考我同门兄弟的这篇安装指南:

https://www.cnblogs.com/nrocky/p/13767316.html

查看cuda版本:

nvcc -V

输出:

 

现在就OK了,是cuda11.1。注意:nvidia-smi里面看到的驱动cuda版本你可以理解成能支持的最高cuda版本。

比如我这里驱动最高支持的就是cuda11.6。

另一个是gcc/g++的版本,不能过高,否则安装ME库的时候也无法编译,官方要求版本>=7.4.0,实际使用7.5.0到8.0.1都没问题,建议不要高于9.5.0。

切换不同版本的gcc/g++

先安装gcc/g++:

sudo apt install gcc-7
sudo apt install g++-7

更换gcc/g++版本:

rm /usr/bin/gcc  #删除现有的gcc
ln -s /usr/bin/gcc-7 /usr/bin/gcc  #更换gcc
rm /usr/bin/g++  #删除现有的g++
ln -s /usr/bin/g++-7 /usr/bin/g++  #更换g++

#查看gcc/g++版本
gcc --version
g++ --version

输出:

 

安装MinkowskiEngine

conda create -n me python==3.8  #创建conda虚拟环境
conda activate me  #激活虚拟环境

接下来就是一个坑了,官方文档让你先安装依赖再安装pytorch,这里务必先安装pytorch,然后再安装依赖,经过我多次尝试,最合适的pytorch版本就是1.9.0和1.9.1最新版本的pytorch也会出问题。

conda install pytorch=1.9.0 torchvision cudatoolkit=11.1 -c pytorch -c nvidia  #安装pytorch
#测试一下,确保cuda可以使用
python
>>> import torch
>>> torch.cuda.is_available()
True
>>> quit()

pip install ninja  #官方文档没说,这里依赖还需要安装ninja库
conda install openblas-devel -c anaconda  #安装依赖

 因为github经常连不上而且速度慢,所以考虑通过本地进行安装,MinkowskiEngine官方地址:

https://github.com/NVIDIA/MinkowskiEngine

执行安装:

cd MinkowskiEngine
python setup.py install --blas_include_dirs=${CONDA_PREFIX}/include --blas=openblas

安装完成之后测试一下是否能正常导入MinkowskiEngine:

python
>>> import MinkowskiEngine as ME
>>> print(ME.__version__)
0.5.4

到此MinkowskiEngine安装完毕。

  • 15
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 24
    评论
MinkowskiEngine是一个用于高效处理稀疏张量的PyTorch库。它可以用于许多任务,包括语义分割。以下是MinkowskiEngine语义分割的示例代码: 1.安装Open3D和open3d-python ```shell pip install open3d pip install open3d-python ``` 2.加载数据并体素化(量化)数据 ```python import open3d as o3d import numpy as np from MinkowskiEngine import SparseTensor, MinkowskiConvolution # 加载点云数据 pcd = o3d.read_point_cloud(file_name) coords = np.array(pcd.points) feats = np.array(pcd.colors) # 体素化数据 quantization_size = 0.05 coords = np.floor(coords / quantization_size) coords = coords - coords.min(0) print('Voxelization') print('Point cloud has {} points'.format(coords.shape[0])) print('Voxel size is {}'.format(quantization_size)) print('Voxelizing...') coords = coords[:, [2, 1, 0]] voxel_size = np.array([quantization_size, quantization_size, quantization_size]) padded_voxel_size = voxel_size + [0.2, 0.2, 0.2] quantized_coords = (coords / voxel_size).astype(int) print('Computing occupancies...') occupancies = np.zeros(quantized_coords.max(0) + 1, dtype=bool) occupancies[tuple(quantized_coords.T)] = True print('Done.') ``` 3.创建稀疏张量并进行卷积 ```python # 创建稀疏张量 print('Creating sparse tensor...') tensor_stride = 1 sp_tensor = SparseTensor( feats, coords=quantized_coords, tensor_stride=tensor_stride) # 进行卷积 print('Convolving...') kernel_size = 3 conv = MinkowskiConvolution( in_channels=3, out_channels=32, kernel_size=kernel_size, stride=1, dilation=1, bias=True) output = conv(sp_tensor) print('Done.') ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值