pvnieo / geomfmaps_pytorch Goto Github PK
View Code? Open in Web Editor NEWA minimalist pytorch implementation of: "Deep Geometric Functional Maps: Robust Feature Learning for Shape Correspondence"
License: MIT License
A minimalist pytorch implementation of: "Deep Geometric Functional Maps: Robust Feature Learning for Shape Correspondence"
License: MIT License
Thank for your work!
I install torch point 3d a==1.3.0 and omegaconf==1.4 on a platform of cuda10.2
But when I training,it have a error:
Traceback (most recent call last):
File "train.py", line 56, in
train(params)
File "train.py", line 26, in train
trainset = ShapeMatchingDatasetWrapper(params, train=True)
File "/test/liwei/FMNET/GeomFmaps_pytorch-master/geomfmaps/shape_matching_dataset.py", line 235, in init
params = OmegaConf.create(hparams)
File "/root/anaconda3/envs/geo_torch/lib/python3.7/site-packages/omegaconf/omegaconf.py", line 53, in create
raise RuntimeError("Unsupported type {}".format(type(obj).name))
RuntimeError: Unsupported type DictConfig
When I change omegaconf to 2.1.1,I can load yaml file,but It have another error:
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
hydra-core 0.11.3 requires omegaconf<1.5,>=1.4, but you have omegaconf 2.1.1 which is incompatible.
when training,it says:
Traceback (most recent call last):
File "train.py", line 56, in
train(params)
File "train.py", line 22, in train
model = GeomFmapNet(params.n_feat, params.in_grid_size, params.lambda_).to(device)
File "/test/liwei/FMNET/GeomFmaps_pytorch-master/geomfmaps/model.py", line 131, in init
self.feature_extractor = KPConvFeatureExtractor(n_feat=n_feat, in_grid_size=in_grid_size)
File "/test/liwei/FMNET/GeomFmaps_pytorch-master/geomfmaps/model.py", line 108, in init
in_grid_size=in_grid_size
File "/root/anaconda3/envs/geo_torch/lib/python3.7/site-packages/torch_points3d/applications/kpconv.py", line 48, in KPConv
return factory.build()
File "/root/anaconda3/envs/geo_torch/lib/python3.7/site-packages/torch_points3d/applications/modelfactory.py", line 73, in build
return self._build_unet()
File "/root/anaconda3/envs/geo_torch/lib/python3.7/site-packages/torch_points3d/applications/kpconv.py", line 60, in _build_unet
return KPConvUnet(model_config, None, None, modules_lib, **self.kwargs)
File "/root/anaconda3/envs/geo_torch/lib/python3.7/site-packages/torch_points3d/applications/kpconv.py", line 77, in init
super(BaseKPConv, self).init(model_config, model_type, dataset, modules)
File "/root/anaconda3/envs/geo_torch/lib/python3.7/site-packages/torch_points3d/models/base_architectures/unet.py", line 363, in init
self._init_from_compact_format(opt, model_type, dataset, modules_lib)
File "/root/anaconda3/envs/geo_torch/lib/python3.7/site-packages/torch_points3d/models/base_architectures/unet.py", line 410, in _init_from_compact_format
self.save_sampling_id = opt.down_conv.save_sampling_id
File "/root/anaconda3/envs/geo_torch/lib/python3.7/site-packages/omegaconf/dictconfig.py", line 354, in getattr
key=key, value=None, cause=e, type_override=ConfigAttributeError
File "/root/anaconda3/envs/geo_torch/lib/python3.7/site-packages/omegaconf/base.py", line 196, in _format_and_raise
type_override=type_override,
File "/root/anaconda3/envs/geo_torch/lib/python3.7/site-packages/omegaconf/_utils.py", line 821, in format_and_raise
_raise(ex, cause)
File "/root/anaconda3/envs/geo_torch/lib/python3.7/site-packages/omegaconf/_utils.py", line 719, in _raise
raise ex.with_traceback(sys.exc_info()[2]) # set end OC_CAUSE=1 for full backtrace
File "/root/anaconda3/envs/geo_torch/lib/python3.7/site-packages/omegaconf/dictconfig.py", line 351, in getattr
return self._get_impl(key=key, default_value=DEFAULT_MARKER)
File "/root/anaconda3/envs/geo_torch/lib/python3.7/site-packages/omegaconf/dictconfig.py", line 438, in _get_impl
node = self._get_node(key=key, throw_on_missing_key=True)
File "/root/anaconda3/envs/geo_torch/lib/python3.7/site-packages/omegaconf/dictconfig.py", line 470, in _get_node
raise ConfigKeyError(f"Missing key {key}")
omegaconf.errors.ConfigAttributeError: Missing key save_sampling_id
full_key: down_conv.save_sampling_id
object_type=dict
I think the problem is the unmatching between torch point 3d and omegaconf!
So I want kown which version of these package on your environment.Thanks!
Hi, thank you for your work about this pytorch version of GeomFmaps.
When I run train.py, I got this error "TypeError: expected Tensor as element 1 in argument 0, but got NoneType".
It seems that when the dataloader trys to change that input data to Mutilscale data the error comes out.
And the whole output is:
{'dataroot': '/home/puhua/GeomFmaps_pytorch-master/FAUST_r', 'neig': 30, 'n_train': 3, 'max_train': 5, 'pre_transforms': [{'transform': 'GridSampling3D', 'params': {'size': 0.02}}], 'train_transforms': [{'transform': 'Random3AxisRotation', 'params': {'apply_rotation': True, 'rot_x': 0, 'rot_y': 360, 'rot_z': 0}}, {'transform': 'RandomNoise', 'params': {'sigma': 0.01, 'clip': 0.05}}, {'transform': 'RandomScaleAnisotropic', 'params': {'scales': [0.9, 1.1]}}, {'transform': 'AddOnes'}, {'transform': 'AddFeatsByKeys', 'params': {'list_add_to_x': [True], 'feat_names': ['ones'], 'delete_feats': [True]}}], 'test_transforms': [{'transform': 'AddOnes'}, {'transform': 'AddFeatsByKeys', 'params': {'list_add_to_x': [True], 'feat_names': ['ones'], 'delete_feats': [True]}}], 'lambda_': 0.001, 'in_grid_size': 0.02, 'n_feat': 128, 'no_cuda': False, 'batch_size': 2, 'n_cpu': 1, 'n_epochs': 20, 'lr': 0.001, 'checkpoint_interval': 5, 'log_interval': 20, 'savedir': '/home/puhua/GeomFmaps_pytorch-master/savedir/', 'evaldir': '/home/puhua/GeomFmaps_pytorch-master/evaldir/'}
Compose([
GridSampling3D(grid_size=0.02, quantize_coords=False, mode=mean),
])
Using: ['000', '001', '002']
Loading evecs: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00, 11.20it/s]
Loading vts: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00, 65.58it/s]
Data(evals_x=[90], evecs_trans_x=[7178, 30], evecs_x=[7178, 30], grid_size=[3], id_scan=[3], nv=[3], origin_id=[7178], pos=[7178, 3])
PARTIAL_DENSE
(Data(C_gt=[1, 30, 30], evals_x=[30], evecs_trans_x=[2396, 30], evecs_x=[2396, 30], grid_size=[1], id_scan=[1], nv=[1], origin_id=[2396], pos=[2396, 3], x=[2396, 1]), Data(evals_x=[30], evecs_trans_x=[2414, 30], evecs_x=[2414, 30], grid_size=[1], id_scan=[1], nv=[1], origin_id=[2414], pos=[2414, 3], x=[2414, 1]))
Traceback (most recent call last):
File "train.py", line 61, in
train(params)
File "train.py", line 36, in train
for i, batch in enumerate(trainloader):
File "/home/puhua/miniconda3/envs/py37torch18/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 517, in next
data = self._next_data()
File "/home/puhua/miniconda3/envs/py37torch18/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 1199, in _next_data
return self._process_data(data)
File "/home/puhua/miniconda3/envs/py37torch18/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 1225, in _process_data
data.reraise()
File "/home/puhua/miniconda3/envs/py37torch18/lib/python3.7/site-packages/torch/_utils.py", line 429, in reraise
raise self.exc_type(msg)
TypeError: Caught TypeError in DataLoader worker process 0.
Original Traceback (most recent call last):
File "/home/puhua/miniconda3/envs/py37torch18/lib/python3.7/site-packages/torch/utils/data/_utils/worker.py", line 202, in _worker_loop
data = fetcher.fetch(index)
File "/home/puhua/miniconda3/envs/py37torch18/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 47, in fetch
return self.collate_fn(data)
File "/home/puhua/GeomFmaps_pytorch-master/geomfmaps/shape_matching_dataset.py", line 304, in
return lambda datalist: MultiScaleBatch.from_data_list([y for x in datalist for y in x])
File "/home/puhua/miniconda3/envs/py37torch18/lib/python3.7/site-packages/torch_points3d/datasets/multiscale_data.py", line 96, in from_data_list
batch = Batch.from_data_list(data_list)
File "/home/puhua/miniconda3/envs/py37torch18/lib/python3.7/site-packages/torch_geometric/data/batch.py", line 156, in from_data_list
batch[key] = torch.cat(items, cat_dim)
TypeError: expected Tensor as element 1 in argument 0, but got NoneType
And I output some infomation about the dataset. Can you help me with this error? Thank you for your help!
My envirorment:
Python 3.7
Pytorch 1.8
CUDA 10.1
torch-geometric 1.7.2
torch-points-kernels 0.6.10
torch-points3d 1.3.0
Hi, there is this error 👍
FileNotFoundError: [Errno 2] No such file or directory: 'path/to/model.pt'
How can I have this file and what is its role?
Hey Souhaib,
I'm trying to get the environment to work without much progress.
In the README.md you mention you used python >=3.7, but knowing what version of python and what version of the packages in requirement.txt
you used when writing the project is important as outdated code and/or package version conflicts make the project non-reproducible.
If you have any of the information available and could share, that would be very helpful!
Thanks again for everything you've done.
Hello,
Thanks, I have got my matches on Scape dataset and now I want to calculate the geodetic error, but I don't know how to use the file of [.vts]. Just like you write in the Readme, the file of .vts is the ground truth maps, but I don't know how to get maps around any pairs shapes, just like the map mesh060.off to mesh061 et al. Looking forward to your reply, thanks.
Best.
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.