GithubHelp home page GithubHelp logo

junweizheng93 / apes Goto Github PK

View Code? Open in Web Editor NEW
81.0 3.0 4.0 46 KB

Official repository for paper "Attention-based Point Cloud Edge Sampling" (APES), Highlight@CVPR 2023

Home Page: https://arxiv.org/pdf/2302.14673.pdf

License: Apache License 2.0

Python 99.01% Shell 0.99%
attention-based downsampling point-cloud edge-points

apes's Issues

Operational issues

Traceback (most recent call last):
File "/home/hpe/hou/复现/APES/utils/train.py", line 1, in
import apes # this line is necessary because we need to register all apes modules
^^^^^^^^^^^
ModuleNotFoundError: No module named 'apes'

Why is this happening, and how can it be resolved?

您好,我在运行测试代码时始终报错

您好,我在CVPR中看到您的论文工作,并对此非常感兴趣,但本人为刚开始接触点云的深度学习方面算法。目前通过租用的GPU训练好模型之后,下载到本地Windows系统笔记本pycharm中。在运行test.py代码时,始终报错为:KeyError: 'APESVisualizer is not in the mmengine::visualizer registry. Please check whether the value of APESVisualizer is correct or it was registered as expected. More details can be found at https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#import-the-custom-module'。在租用的GPU上运行test.py代码无此问题,但那个界面为jupyter,无法进行测试结果可视化。还是想在本地笔记本上进行测试,我相信已经将test.py的配置环境正确,此问题已困扰数天无法解决。可能此问题仅为设置方面错误,但属实难以正确运行。如若方便,还请您帮忙解决该困惑,万分感谢,期待回复。

When is the code available

Dear authors,
Thank you for this insightful work, i am look forward this project to be open-sourced as soon as possible.

FileNotFoundError: class `EpochBasedTrainLoop` in mmengine/runner/loops.py: class `ModelNet` in apes/datasets/modelnet.py: [Errno 2] No such file or directory: './data/modelnet/pcd/train/'

I followed the steps under 'Data'.

When I want to train a model from scratch and run the following command:

bash utils/single_gpu_train.sh configs/apes/apes_cls_local-modelnet-200epochs.py

it gives me this error:

FileNotFoundError: class EpochBasedTrainLoopin mmengine/runner/loops.py: classModelNet in apes/datasets/modelnet.py: [Errno 2] No such file or directory: './data/modelnet/pcd/train/'

I'm on Ubuntu and installed all the correct versions in the prerequisites

Dear Professor zheng

Dear Professor zheng, hello. I am very interested in your Attention Based Point Cloud Edge Sampling paper published on CVPR recently. Could you take the time to share the code in the CategoryMeanIoU class amidst your busy schedule? Looking forward to your early reply! Wishing you good health and a thriving career!

UnpicklingError

I trained the network for classification using local-based downsampling.
Now I want to test the model and it gives me an unpickling error:

`System environment:
sys.platform: linux
Python: 3.9.19 (main, Apr 27 2024, 21:19:26) [GCC 13.2.0]
CUDA available: True
MUSA available: False
numpy_random_seed: 172362758
GPU 0: Quadro RTX 4000
CUDA_HOME: /usr
NVCC: Cuda compilation tools, release 12.0, V12.0.140
GCC: x86_64-linux-gnu-gcc (Ubuntu 13.2.0-23ubuntu4) 13.2.0
PyTorch: 2.0.0+cu117
PyTorch compiling details: PyTorch built with:

  • GCC 9.3

  • C++ Version: 201703

  • Intel(R) oneAPI Math Kernel Library Version 2022.2-Product Build 20220804 for Intel(R) 64 architecture applications

  • Intel(R) MKL-DNN v2.7.3 (Git Hash 6dbeffbae1f23cbbeae17adb7b5b13f1f37c080e)

  • OpenMP 201511 (a.k.a. OpenMP 4.5)

  • LAPACK is enabled (usually provided by MKL)

  • NNPACK is enabled

  • CPU capability usage: AVX2

  • CUDA Runtime 11.7

  • NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86

  • CuDNN 8.5

  • Magma 2.6.1

  • Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.7, CUDNN_VERSION=8.5.0, CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, CXX_FLAGS= -D_GLIBCXX_USE_CXX11_ABI=0 -fabi-version=11 -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -DNDEBUG -DUSE_KINETO -DLIBKINETO_NOROCTRACER -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -O2 -fPIC -Wall -Wextra -Werror=return-type -Werror=non-virtual-dtor -Werror=bool-operation -Wnarrowing -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wunused-local-typedefs -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Werror=cast-function-type -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_DISABLE_GPU_ASSERTS=ON, TORCH_VERSION=2.0.0, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=1, USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF,

    OpenCV: 4.9.0
    MMEngine: 0.10.4

Runtime environment:
cudnn_benchmark: True
mp_cfg: {'mp_start_method': 'fork', 'opencv_num_threads': 0}
dist_cfg: {'backend': 'nccl', 'init_method': 'env://'}
seed: 172362758
diff_rank_seed: False
deterministic: False
Distributed launcher: none
Distributed training: False
GPU number: 1

06/06 14:26:23 - mmengine - INFO - Config:
auto_scale_lr = dict(base_batch_size=8, enable=False)
cfg = dict(compile=True, find_unused_parameters=False, sync_bn='torch')
custom_hooks = None
data_preprocessor = None
default_hooks = dict(
checkpoint=dict(
by_epoch=True,
interval=-1,
max_keep_ckpts=-1,
published_keys=[
'state_dict',
],
rule=[
'greater',
],
save_best=[
'val_acc',
],
save_last=False,
save_optimizer=True,
save_param_scheduler=True,
type='ModifiedCheckpointHook'),
logger=dict(
ignore_last=False,
interval=1,
interval_exp_name=1,
log_metric_by_epoch=True,
type='ModifiedLoggerHook'),
param_scheduler=dict(type='ParamSchedulerHook'),
runtime_info=dict(type='RuntimeInfoHook'),
sampler_seed=dict(type='DistSamplerSeedHook'),
timer=dict(type='IterTimerHook'))
default_scope = 'mmengine'
env_cfg = dict(
cudnn_benchmark=True,
dist_cfg=dict(backend='nccl', init_method='env://'),
mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0))
experiment_name = 'apes_cls_local-modelnet-200epochs'
launcher = 'none'
load_from = '/home/ubuntu/Downloads/APES-main/work_dirs/apes_cls_local-modelnet-200epochs/20240605_175037/best_val_acc_epoch_156/archive/data.pkl'
log_level = 'INFO'
log_processor = dict(
by_epoch=True,
custom_cfg=[
dict(
data_src='loss',
log_name='loss',
method_name='mean',
window_size='epoch'),
dict(
data_src='acc',
log_name='acc',
method_name='mean',
window_size='epoch'),
])
model = dict(
backbone=dict(type='APESClsBackbone', which_ds='local'),
data_preprocessor=None,
head=dict(type='APESClsHead'),
init_cfg=None,
neck=None,
type='APESClassifier')
optim_wrapper = dict(
optimizer=dict(lr=0.0001, type='AdamW', weight_decay=1),
type='AmpOptimWrapper')
param_scheduler = [
dict(
begin=0,
by_epoch=True,
end=10,
end_factor=1,
start_factor=0.0001,
type='LinearLR'),
dict(
T_max=190,
begin=10,
by_epoch=True,
end=200,
eta_min=0,
type='CosineAnnealingLR'),
]
randomness = dict(deterministic=False, diff_rank_seed=False, seed=None)
resume = False
test_cfg = dict(fp16=False, type='TestLoop')
test_dataloader = dict(
batch_size=8,
collate_fn=dict(type='default_collate'),
dataset=dict(
data_prefix=dict(cls_label_path='label/test/', pcd_path='pcd/test/'),
data_root='./data/modelnet',
pipeline=[
dict(type='LoadPCD'),
dict(type='LoadCLSLabel'),
dict(type='ToCLSTensor'),
dict(type='PackCLSInputs'),
],
type='ModelNet'),
drop_last=True,
num_workers=4,
persistent_workers=True,
pin_memory=True,
sampler=dict(shuffle=False, type='DefaultSampler'))
test_evaluator = dict(mode='test', type='Accuracy')
train_cfg = dict(
max_epochs=200, type='EpochBasedTrainLoop', val_begin=1, val_interval=1)
train_dataloader = dict(
batch_size=8,
collate_fn=dict(type='default_collate'),
dataset=dict(
data_prefix=dict(cls_label_path='label/train/', pcd_path='pcd/train/'),
data_root='./data/modelnet',
pipeline=[
dict(type='LoadPCD'),
dict(type='LoadCLSLabel'),
dict(type='ShufflePointsOrder'),
dict(
angle=15,
axis='y',
clip=0.05,
max_scale=1.5,
min_scale=0.66,
shift=0.2,
sigma=0.01,
type='DataAugmentation'),
dict(type='ToCLSTensor'),
dict(type='PackCLSInputs'),
],
type='ModelNet'),
drop_last=True,
num_workers=4,
persistent_workers=True,
pin_memory=True,
sampler=dict(shuffle=True, type='DefaultSampler'))
val_cfg = dict(fp16=False, type='ValLoop')
val_dataloader = dict(
batch_size=8,
collate_fn=dict(type='default_collate'),
dataset=dict(
data_prefix=dict(cls_label_path='label/test/', pcd_path='pcd/test/'),
data_root='./data/modelnet',
pipeline=[
dict(type='LoadPCD'),
dict(type='LoadCLSLabel'),
dict(type='ToCLSTensor'),
dict(type='PackCLSInputs'),
],
type='ModelNet'),
drop_last=True,
num_workers=4,
persistent_workers=True,
pin_memory=True,
sampler=dict(shuffle=False, type='DefaultSampler'))
val_evaluator = dict(mode='val', type='Accuracy')
visualizer = dict(
type='APESVisualizer',
vis_backends=[
dict(type='ModifiedLocalVisBackend'),
])
work_dir = './work_dirs/apes_cls_local-modelnet-200epochs'

06/06 14:26:23 - mmengine - WARNING - The prefix is not set in metric class Accuracy.
06/06 14:26:24 - mmengine - INFO - Distributed training is not used, all SyncBatchNorm (SyncBN) layers in the model will be automatically reverted to BatchNormXd layers if they are used.
06/06 14:26:24 - mmengine - INFO - Hooks will be executed in the following order:
before_run:
(VERY_HIGH ) RuntimeInfoHook
(BELOW_NORMAL) ModifiedLoggerHook

before_train:
(VERY_HIGH ) RuntimeInfoHook
(NORMAL ) IterTimerHook
(VERY_LOW ) ModifiedCheckpointHook

before_train_epoch:
(VERY_HIGH ) RuntimeInfoHook
(NORMAL ) IterTimerHook
(NORMAL ) DistSamplerSeedHook

before_train_iter:
(VERY_HIGH ) RuntimeInfoHook
(NORMAL ) IterTimerHook

after_train_iter:
(VERY_HIGH ) RuntimeInfoHook
(NORMAL ) IterTimerHook
(BELOW_NORMAL) ModifiedLoggerHook
(LOW ) ParamSchedulerHook
(VERY_LOW ) ModifiedCheckpointHook

after_train_epoch:
(NORMAL ) IterTimerHook
(LOW ) ParamSchedulerHook
(VERY_LOW ) ModifiedCheckpointHook

before_val:
(VERY_HIGH ) RuntimeInfoHook

before_val_epoch:
(NORMAL ) IterTimerHook

before_val_iter:
(NORMAL ) IterTimerHook

after_val_iter:
(NORMAL ) IterTimerHook
(BELOW_NORMAL) ModifiedLoggerHook

after_val_epoch:
(VERY_HIGH ) RuntimeInfoHook
(NORMAL ) IterTimerHook
(BELOW_NORMAL) ModifiedLoggerHook
(LOW ) ParamSchedulerHook
(VERY_LOW ) ModifiedCheckpointHook

after_val:
(VERY_HIGH ) RuntimeInfoHook

after_train:
(VERY_HIGH ) RuntimeInfoHook
(VERY_LOW ) ModifiedCheckpointHook

before_test:
(VERY_HIGH ) RuntimeInfoHook

before_test_epoch:
(NORMAL ) IterTimerHook

before_test_iter:
(NORMAL ) IterTimerHook

after_test_iter:
(NORMAL ) IterTimerHook
(BELOW_NORMAL) ModifiedLoggerHook

after_test_epoch:
(VERY_HIGH ) RuntimeInfoHook
(NORMAL ) IterTimerHook
(BELOW_NORMAL) ModifiedLoggerHook

after_test:
(VERY_HIGH ) RuntimeInfoHook

after_run:
(BELOW_NORMAL) ModifiedLoggerHook

Loads checkpoint by local backend from path: /home/ubuntu/Downloads/APES-main/work_dirs/apes_cls_local-modelnet-200epochs/20240605_175037/best_val_acc_epoch_156/archive/data.pkl
Traceback (most recent call last):
File "/home/ubuntu/Downloads/APES-main/utils/test.py", line 36, in
main()
File "/home/ubuntu/Downloads/APES-main/utils/test.py", line 32, in main
runner.test()
File "/home/ubuntu/Downloads/APES-main/venv/lib/python3.9/site-packages/mmengine/runner/runner.py", line 1821, in test
self.load_or_resume()
File "/home/ubuntu/Downloads/APES-main/venv/lib/python3.9/site-packages/mmengine/runner/runner.py", line 1699, in load_or_resume
self.load_checkpoint(self._load_from)
File "/home/ubuntu/Downloads/APES-main/venv/lib/python3.9/site-packages/mmengine/runner/runner.py", line 2127, in load_checkpoint
checkpoint = _load_checkpoint(filename, map_location=map_location)
File "/home/ubuntu/Downloads/APES-main/venv/lib/python3.9/site-packages/mmengine/runner/checkpoint.py", line 548, in _load_checkpoint
return CheckpointLoader.load_checkpoint(filename, map_location, logger)
File "/home/ubuntu/Downloads/APES-main/venv/lib/python3.9/site-packages/mmengine/runner/checkpoint.py", line 330, in load_checkpoint
return checkpoint_loader(filename, map_location)
File "/home/ubuntu/Downloads/APES-main/venv/lib/python3.9/site-packages/mmengine/runner/checkpoint.py", line 347, in load_from_local
checkpoint = torch.load(filename, map_location=map_location)
File "/home/ubuntu/Downloads/APES-main/venv/lib/python3.9/site-packages/torch/serialization.py", line 815, in load
return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
File "/home/ubuntu/Downloads/APES-main/venv/lib/python3.9/site-packages/torch/serialization.py", line 1033, in _legacy_load
magic_number = pickle_module.load(f, **pickle_load_args)
_pickle.UnpicklingError: A load persistent id instruction was encountered,
but no persistent_load function was specified.
`

What kind of GPU do I need

First of all thank you for your excellent work, here I would like to ask if I only have a 3090GPU can run your work?

about framework

Thanks for your nice work, I have a small question, is this work a Transformer framework?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.