spconv代码
由于spconv1.x到2.x代码差距很大,但是官方也没有进一步对1.x的代码进行兼容。只是给了1.x到2.x代码修改的教程。
这里按照官网教程https://github.com/traveller59/spconv/blob/899008faa3c629bd43ff6c59ec718fb28728dfb5/docs/SPCONV_2_BREAKING_CHANGEs.md
写了一个适合自己的笔记。
spconv2.x安装
# 环境准备
conda create --name env_name python=3.7 cmake=3.22.1
pip install torch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 --index-url https://download.pytorch.org/whl/cu121
conda install cudnn -c conda-forge
conda install boost
conda install -c conda-forge gcc=9.5.0
conda install gxx_linux-64=9.5.0
conda install --channel=conda-forge libxcrypt
pip install torch_scatter
# 安装
pip install spconv-cu120
具体代码改进
- 首先是引入spconv
原来:
import spconv
改进
import spconv.pytorch as spconv
- 还有一些在代码按照下面进行替换即可例如:
import spconv.SubMConv3d
要改为
import spconv.pytorch.conv.SubConv3d
按照下面代码全部替换即可
import spconv.pytorch as spconv
from spconv.pytorch import ops
from spconv.pytorch.conv import (SparseConv2d, SparseConv3d, SparseConvTranspose2d,
SparseConvTranspose3d, SparseInverseConv2d,
SparseInverseConv3d, SubMConv2d, SubMConv3d)
from spconv.pytorch.core import SparseConvTensor
from spconv.pytorch.identity import Identity
from spconv.pytorch.modules import SparseModule, SparseSequential
from spconv.pytorch.ops import ConvAlgo
from spconv.pytorch.pool import SparseMaxPool2d, SparseMaxPool3d
from spconv.pytorch.tables import AddTable, ConcatTable