lmd0311 / pointmamba Goto Github PK
View Code? Open in Web Editor NEWPointMamba: A Simple State Space Model for Point Cloud Analysis
Home Page: https://arxiv.org/abs/2402.10739
License: Apache License 2.0
PointMamba: A Simple State Space Model for Point Cloud Analysis
Home Page: https://arxiv.org/abs/2402.10739
License: Apache License 2.0
I first ran the classification task of ModelNet40 training-from-scratch in pointmamba on four 3080Ti, and selected the your pretrain.pth file to run the train from pre-trained classification of ModelNet40. All these are implemented in accordance with the parameters and steps described in the paper, but the final classification accuracy is only 93.0713%, while the best classification accuracy mentioned in the paper is 93.6%.We ran it many times(pic 1 with voting and pic 2,3,4 without voting) I have tested other classification and segmentation tasks, and the results obtained in accordance with the parameters in the paper have decreased by about 1-4 percentage points compared with those in the paper. I wonder if this is a problem or if the model parameters in the article are not updated in real time?
Do you have semantic segmentation in your model?
Hello:
Thank you for your research and assistance.
Why is my GPU not being fully utilized and only used at 8%?
It seems that the current repository maintains the old codes. Any plans for releasing the codes of the new updates? Very appreciate it!
Hello does the current code-base have code for imposing a specific order and then serializing it? If no, will you be uploading it? If yes, I can't find it; in fact I think
choice = np.random.choice(len(seg), self.npoints, replace=True)
# resample
point_set = point_set[choice, :]
seg = seg[choice]
at line 155 in ./part_segmentation/dataset.py
effectively randomizes the order of the points (which I guess might work, but is not what the paper reports).
Thank you!
Do you conduct experiments on Windows? If I need to reproduce the experiments on Windows, what modifications are necessary?
Thank you for your great work. I have two questions.
(1) I would like to ask what is the startup script and code for the test ?
Is that so?
CUDA_VISIBLE_DEVICES=<GPU> python main.py --test --config cfgs/finetune_modelnet.yaml --ckpts <path/to/model> --exp_name <name>
(2) The second question is about pre-training.
After the pre-training is completed, several models will be saved. Which one is the best? Is the one named ckpt-last.pth the best?
Hi, I am very interested in your outstanding work, thank you for sharing!
I have some questions I'd like to consult with you while I was reproducing this work. In the process of calculating FLOPs, I noticed that you seemed to have used the 'calculate_flops' method from the 'calflops' library, but then you commented it out. The FLOPs calculated using this part of the code are abnormally large (which seems to be incorrect, and this error is likely due to my oversight). I would like to ask how you calculate FLOPs, especially the FLOPs for the segmentation part.
When I tried to install pointnet2_ops, it met some problems below:
Building wheels for collected packages: pointnet2_ops
Building wheel for pointnet2_ops (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [59 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-39
creating build/lib.linux-x86_64-cpython-39/pointnet2_ops
copying pointnet2_ops/pointnet2_utils.py -> build/lib.linux-x86_64-cpython-39/pointnet2_ops
copying pointnet2_ops/_version.py -> build/lib.linux-x86_64-cpython-39/pointnet2_ops
copying pointnet2_ops/pointnet2_modules.py -> build/lib.linux-x86_64-cpython-39/pointnet2_ops
copying pointnet2_ops/init.py -> build/lib.linux-x86_64-cpython-39/pointnet2_ops
running egg_info
creating pointnet2_ops.egg-info
writing pointnet2_ops.egg-info/PKG-INFO
writing dependency_links to pointnet2_ops.egg-info/dependency_links.txt
writing requirements to pointnet2_ops.egg-info/requires.txt
writing top-level names to pointnet2_ops.egg-info/top_level.txt
writing manifest file 'pointnet2_ops.egg-info/SOURCES.txt'
reading manifest file 'pointnet2_ops.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'pointnet2_ops.egg-info/SOURCES.txt'
creating build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src
creating build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/include
copying pointnet2_ops/_ext-src/include/ball_query.h -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/include
copying pointnet2_ops/_ext-src/include/cuda_utils.h -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/include
copying pointnet2_ops/_ext-src/include/group_points.h -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/include
copying pointnet2_ops/_ext-src/include/interpolate.h -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/include
copying pointnet2_ops/_ext-src/include/sampling.h -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/include
copying pointnet2_ops/_ext-src/include/utils.h -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/include
creating build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
copying pointnet2_ops/_ext-src/src/ball_query.cpp -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
copying pointnet2_ops/_ext-src/src/ball_query_gpu.cu -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
copying pointnet2_ops/_ext-src/src/bindings.cpp -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
copying pointnet2_ops/_ext-src/src/group_points.cpp -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
copying pointnet2_ops/_ext-src/src/group_points_gpu.cu -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
copying pointnet2_ops/_ext-src/src/interpolate.cpp -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
copying pointnet2_ops/_ext-src/src/interpolate_gpu.cu -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
copying pointnet2_ops/_ext-src/src/sampling.cpp -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
copying pointnet2_ops/_ext-src/src/sampling_gpu.cu -> build/lib.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src
running build_ext
building 'pointnet2_ops._ext' extension
creating /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39
creating /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_ops
creating /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_ops/
_ext-src
creating /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_ops/
_ext-src/src
Emitting ninja build file /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-
39/build.ninja...
Compiling objects...
Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)
1.11.1.git.kitware.jobserver-1
g++ -pthread -B /home/lxy/miniconda3/envs/pointmamba/compiler_compat -shared -Wl,--allow-shlib-undefined -Wl,-rpath,/home/lxy/miniconda3/envs/pointma
mba/lib -Wl,-rpath-link,/home/lxy/miniconda3/envs/pointmamba/lib -L/home/lxy/miniconda3/envs/pointmamba/lib -Wl,--allow-shlib-undefined -Wl,-rpath,/home/lx
y/miniconda3/envs/pointmamba/lib -Wl,-rpath-link,/home/lxy/miniconda3/envs/pointmamba/lib -L/home/lxy/miniconda3/envs/pointmamba/lib /tmp/pip-install-4cxg7
72c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src/ball_query.o /tmp/pip-in
stall-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src/ball_query_gp
u.o /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/sr
c/bindings.o /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_ops/_e
xt-src/src/group_points.o /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/poi
ntnet2_ops/ext-src/src/group_points_gpu.o /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86
64-cpython-39/pointnet2_ops/_ext-src/src/interpolate.o /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/tem
p.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src/interpolate_gpu.o /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_o
ps_lib/build/temp.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src/sampling.o /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/po
intnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_ops/_ext-src/src/sampling_gpu.o -L/home/lxy/miniconda3/envs/pointmamba/lib/python3.9/site-pack
ages/torch/lib -L/usr/local/cuda-11.7/lib64 -lc10 -ltorch -ltorch_cpu -ltorch_python -lcudart -lc10_cuda -ltorch_cuda_cu -ltorch_cuda_cpp -o build/lib.linu
x-x86_64-cpython-39/pointnet2_ops/_ext.cpython-39-x86_64-linux-gnu.so
g++: error: /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_o
ps/_ext-src/src/ball_query.o: 没有那个文件或目录
g++: error: /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_o
ps/_ext-src/src/ball_query_gpu.o: 没有那个文件或目录
g++: error: /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_o
ps/_ext-src/src/bindings.o: 没有那个文件或目录
g++: error: /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_o
ps/_ext-src/src/group_points.o: 没有那个文件或目录
g++: error: /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_o
ps/_ext-src/src/group_points_gpu.o: 没有那个文件或目录
g++: error: /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_o
ps/_ext-src/src/interpolate.o: 没有那个文件或目录
g++: error: /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_o
ps/_ext-src/src/interpolate_gpu.o: 没有那个文件或目录
g++: error: /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_o
ps/_ext-src/src/sampling.o: 没有那个文件或目录
g++: error: /tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/build/temp.linux-x86_64-cpython-39/pointnet2_o
ps/_ext-src/src/sampling_gpu.o: 没有那个文件或目录
error: command '/usr/bin/g++' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pointnet2_ops
Running setup.py clean for pointnet2_ops
error: subprocess-exited-with-error
× python setup.py clean did not run successfully.
│ exit code: 1
╰─> [6 lines of output]
Traceback (most recent call last):
File "", line 2, in
File "", line 34, in
File "/tmp/pip-install-4cxg772c/pointnet2-ops_88c1d8c48d974f3fbab744197ca37a19/pointnet2_ops_lib/setup.py", line 17, in
exec(open(osp.join("pointnet2_ops", "_version.py")).read())
FileNotFoundError: [Errno 2] No such file or directory: 'pointnet2_ops/_version.py'
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed cleaning build dir for pointnet2_ops
Failed to build pointnet2_ops
ERROR: Could not build wheels for pointnet2_ops, which is required to install pyproject.toml-based projects
How can I figure out this problem, I will be very grateful for your reply.
Thank you for your great work.
In the pertaining phase, you don't use traversing? because I can not see traversing in the pretraining phase.
I would be grateful if you could answer my question.
Hello, I can't find the space-filling curves in the code. Can you tell me where the Hilbert is in the code? Thank you.
Hello, how much GPU memory is used during pre-training in you experiment?
How long does it take to complete one epoch when using a single 4090 during pre-training?
A problem occurs when installing requirements.txt
ERROR: Could not find a version that satisfies the requirement open3d==1.10.0 (from versions: 0.14.1, 0.15.2, 0.16.0, 0.17.0, 0.18.0)
ERROR: No matching distribution found for open3d==1.10.0
OS: Ubuntu 18.04
python version: 3.9 (as required)
torch and cuda toolkit version also satisfy requirements.
So where can I get open3d 1.10.0? I only found version 0.18.0 on its official website.
Hi, your work is excellent, but I have a question about the reported experimental results.
In the item "Training from scratch" in the Table 2 in your paper, according to my understanding, the architecture of "Transformer" and "Point-MAE" should be consistent, but why are there two different experimental results?
"Why does it give the error 'Trying to backward through the graph a second time' at the position xyz1, xyz2, idx1, idx2 = ctx.saved_tensors after running? Is there something wrong with my setup? Could this be related to the versions of Chamfer Distance and EMD installed?"
Thank you for your great work.
I would like to ask how to visualize this result, such as Figure 3 in the paper? Can you provide this visualization code?
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.