junweizheng93 / apes Goto Github PK
View Code? Open in Web Editor NEWOfficial 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
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
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的配置环境正确,此问题已困扰数天无法解决。可能此问题仅为设置方面错误,但属实难以正确运行。如若方便,还请您帮忙解决该困惑,万分感谢,期待回复。
Very nice work,could you share the code of sampling methods comparison in section 5?Looking forward to your reply.
Dear authors,
Thank you for this insightful work, i am look forward this project to be open-sourced as soon as possible.
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: class
ModelNet 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, 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!
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
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'
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.
`
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?
Thanks for your nice work, I have a small question, is this work a Transformer framework?
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.