GithubHelp home page GithubHelp logo

pvnieo / geomfmaps_pytorch Goto Github PK

View Code? Open in Web Editor NEW
23.0 23.0 2.0 14 KB

A minimalist pytorch implementation of: "Deep Geometric Functional Maps: Robust Feature Learning for Shape Correspondence"

License: MIT License

Python 100.00%
feature-extraction functional-maps python3 pytorch shape-correspondence shape-descriptor shape-matching

geomfmaps_pytorch's People

Contributors

pvnieo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

aaroncnu yang-l1

geomfmaps_pytorch's Issues

versions of pip packages in requirement.txt

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.

About version of torch point 3d and omegaconf

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!

About Scape Dataset Ground-truth

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.

Got errors in dataloader

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

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.