dvlab-research / spconv-plus Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
cuda 113,
python 3.8,
pytorch 1.11.0,
spconv-plus 2.1.21
import spconv.pytorch
Traceback (most recent call last):
File "", line 1, in
File "/home/suwei/anaconda3/envs/max_voxelnext/lib/python3.8/site-packages/spconv/pytorch/init.py", line 6, in
from spconv.pytorch.core import SparseConvTensor
File "/home/suwei/anaconda3/envs/max_voxelnext/lib/python3.8/site-packages/spconv/pytorch/core.py", line 21, in
from spconv.tools import CUDAKernelTimer
File "/home/suwei/anaconda3/envs/max_voxelnext/lib/python3.8/site-packages/spconv/tools.py", line 16, in
from spconv.cppconstants import CPU_ONLY_BUILD
File "/home/suwei/anaconda3/envs/max_voxelnext/lib/python3.8/site-packages/spconv/cppconstants.py", line 15, in
import spconv.core_cc as _ext
ImportError: arg(): could not convert default argument 'timer: tv::CUDAKernelTimer' in method '<class 'spconv.core_cc.cumm.gemm.main.GemmParams'>.init' into a Python object (type not registered yet?)
Hello, it is amazing that your Focals Conv backbone is as the point cloud feature extraction! But I found that the backbone occupies too much GPU memory while I training on RTX 3090 and also slows down the training.
I am very glad to find that you implement FocalsConv with CUDA; I also follow your instruction to see examples in file focal_sparse_conv_cuda.py, but I found no use of FocalsConv3d
. So I find the source code of FocalsConv3d
in spconv
package. But I wonder how I use it correctly in file spconv_backbone_focal.py. I follow the usage of spconv.SubMConv3d
in VoxelBackBone8xFocal
class to replace the special_spconv_fn
which is for FocalSparseConv
with FocalsConv3d
block. But I found that its forward
function has parameter ori_feat_num
which I confuse about it, could you help me what the param stand for?
the source code is as follows:
class FocalsConv3d(SparseConvolution):
def __init__(self,
in_channels,
out_channels,
kernel_size,
stride=1,
padding=0,
dilation=1,
groups=1,
bias=True,
indice_key=None,
algo: Optional[ConvAlgo] = None,
fp32_accum: Optional[bool] = None,
name=None):
super(FocalsConv3d, self).__init__(3,
in_channels,
out_channels,
kernel_size,
stride,
padding,
dilation,
groups,
bias,
subm=False,
focal=True,
indice_key=indice_key,
algo=algo,
fp32_accum=fp32_accum,
name=name)
forward function in SparseConvolution:
def forward(self, input: SparseConvTensor, mask=None, ori_feat_num=-1, group_map=None):
if FocalsConv3d is called, ori_feat_num should > 0. In KITTI dataset, the param should be 1 or 3? it means orientation feature num?
Another question is that is it right to replace special_spconv_fn
with spconv.FocalsConv3d
without any other parameters changed except kernel_size, in/out_channels, stride?
I would appreciate for your reply. Thank you again.
Hello @yukang2017 @yanwei-li
Thanks for sharing your research work.
In fact, Spconv is still updating. So, as the title mentioned, will spconv-plus keep updating the spconv part of the spconv-plus repo while original spconv repo updates?
Is there something wrong with the version of setuptools? Here is the traceback of the error:
File "/home/lyd/miniconda3/envs/pcr/lib/python3.8/site-packages/setuptools/init.py", line 87, in setup
return distutils.core.setup(**attrs)
File "/home/lyd/miniconda3/envs/pcr/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 185, in setup
return run_commands(dist)
File "/home/lyd/miniconda3/envs/pcr/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
dist.run_commands()
File "/home/lyd/miniconda3/envs/pcr/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 973, in run_commands
self.run_command(cmd)
File "/home/lyd/miniconda3/envs/pcr/lib/python3.8/site-packages/setuptools/dist.py", line 1217, in run_command
super().run_command(command)
File "/home/lyd/miniconda3/envs/pcr/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 992, in run_command
cmd_obj.run()
File "/home/lyd/miniconda3/envs/pcr/lib/python3.8/site-packages/wheel/bdist_wheel.py", line 325, in run
self.run_command("build")
File "/home/lyd/miniconda3/envs/pcr/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 319, in run_command
self.distribution.run_command(command)
File "/home/lyd/miniconda3/envs/pcr/lib/python3.8/site-packages/setuptools/dist.py", line 1217, in run_command
super().run_command(command)
File "/home/lyd/miniconda3/envs/pcr/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 992, in run_command
cmd_obj.run()
File "/home/lyd/miniconda3/envs/pcr/lib/python3.8/site-packages/setuptools/_distutils/command/build.py", line 132, in run
self.run_command(cmd_name)
File "/home/lyd/miniconda3/envs/pcr/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 319, in run_command
self.distribution.run_command(command)
File "/home/lyd/miniconda3/envs/pcr/lib/python3.8/site-packages/setuptools/dist.py", line 1217, in run_command
super().run_command(command)
File "/home/lyd/miniconda3/envs/pcr/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 992, in run_command
cmd_obj.run()
File "/home/lyd/miniconda3/envs/pcr/lib/python3.8/site-packages/pccm/extension.py", line 59, in run
self.build_extension(ext)
File "/home/lyd/miniconda3/envs/pcr/lib/python3.8/site-packages/pccm/extension.py", line 78, in build_extension
lib_path = pccm.builder.build_pybind(ext.cus,
File "/home/lyd/miniconda3/envs/pcr/lib/python3.8/site-packages/pccm/builder/pybind.py", line 120, in build_pybind
return ccimport.ccimport(
TypeError: ccimport() got multiple values for argument 'std'
Dear authors, I install spconv-plus and run the script examples.py, but there are something wrong.
here is my package info:
cuda=11.3
torch=1.10.0
torch.version.cuda=11.3
python examples.py
[Exception|indice_conv]feat=torch.Size([240000, 32]),w=torch.Size([3, 3, 3, 32, 32]),pair=torch.Size([2, 27, 240000]),pairnum=tensor([ 5527, 6017, 5605, 5576, 6206, 5602, 5575, 6049, 5587,
5673, 5994, 5628, 5615, 120000, 5518, 5550, 6006, 5685,
5542, 5851, 5650, 5649, 6037, 5648, 5643, 5995, 5489],
device='cuda:0', dtype=torch.int32),act=240000,algo=ConvAlgo.Native
SPCONV_DEBUG_SAVE_PATH not found, you can specify SPCONV_DEBUG_SAVE_PATH as debug data save path to save debug data which can be attached in a issue.
Traceback (most recent call last):
File "examples.py", line 313, in
main_spss(algo=spconv.ConvAlgo.Native, dtype=torch.float32, pruning_ratio=0.5)
File "examples.py", line 194, in main_spss
out = net(features_t, indices_t, bs, pruning_ratio=pruning_ratio)
File "/usr/local/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
return forward_call(*input, **kwargs)
File "examples.py", line 59, in forward
return self.net(x, mask) # .dense()
File "/usr/local/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1102, in call_impl
return forward_call(*input, **kwargs)
File "/usr/local/miniconda3/lib/python3.8/site-packages/spconv/pytorch/conv.py", line 372, in forward
out_features = conv_func(
File "/usr/local/miniconda3/lib/python3.8/site-packages/torch/cuda/amp/autocast_mode.py", line 94, in decorate_fwd
return fwd(*args, **kwargs)
File "/usr/local/miniconda3/lib/python3.8/site-packages/spconv/pytorch/functional.py", line 84, in forward
raise e
File "/usr/local/miniconda3/lib/python3.8/site-packages/spconv/pytorch/functional.py", line 69, in forward
return conv_func(features,
File "/usr/local/miniconda3/lib/python3.8/site-packages/spconv/pytorch/ops.py", line 767, in indice_conv
tuned_res, min_time = GEMM.tune_and_cache(
File "/usr/local/miniconda3/lib/python3.8/site-packages/spconv/algo.py", line 324, in tune_and_cache
c = c.clone()
ValueError: /io/include/tensorview/tensor.h(171)
don't compiled with cuda
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.