Skip to content

Conversation

FilippoOlivo
Copy link
Member

@FilippoOlivo FilippoOlivo commented Jan 16, 2025

This PR refers to the issue #400

@dario-coscia
Copy link
Collaborator

@FilippoOlivo I would avoid to write a graph solver, SupervisedSolver should be used

@FilippoOlivo FilippoOlivo marked this pull request as ready for review January 24, 2025 12:41
@FilippoOlivo FilippoOlivo added the pr-to-fix Label for PR that needs modification label Jan 24, 2025
@FilippoOlivo FilippoOlivo self-assigned this Jan 24, 2025
@dario-coscia dario-coscia changed the title Add Graph class and Supervised Graph solver Add Graph class Jan 24, 2025
@FilippoOlivo FilippoOlivo marked this pull request as draft January 27, 2025 08:32
@FilippoOlivo FilippoOlivo marked this pull request as ready for review January 27, 2025 15:26
@FilippoOlivo FilippoOlivo added pr-to-review Label for PR that are ready to been reviewed and removed pr-to-fix Label for PR that needs modification labels Jan 27, 2025
@FilippoOlivo FilippoOlivo marked this pull request as draft January 27, 2025 16:47
pina/graph.py Outdated
if isinstance(pos, torch.Tensor):
pos = [pos]
edge_index = [edge_index]
distance = [pos_[edge_index_[0]] - pos_[edge_index_[1]] ** 2 for
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

edge_attr is computed as the square of the distance, instead of the standard distance. Is this the desired behavior?

@FilippoOlivo FilippoOlivo linked an issue Jan 28, 2025 that may be closed by this pull request
@dario-coscia
Copy link
Collaborator

dario-coscia commented Jan 29, 2025

@FilippoOlivo please remove from commit a862dc8 to f0ddee6, they should pertain to a different PR #433 . Only graph updates should be here

@FilippoOlivo
Copy link
Member Author

@dario-coscia Done! Remove useless commits

@ndem0
Copy link
Member

ndem0 commented Jan 29, 2025

I would say green light on my side!

@dario-coscia
Copy link
Collaborator

@FilippoOlivo there is still the supervised.py file not tracked. Also I remember last time we discussed to divide the classes:

  • A base GraphInterface
  • RadiusGraph
  • KNNGraph
  • Graph
  • TemporalGraph
  • ....

@dario-coscia dario-coscia added pr-to-fix Label for PR that needs modification v0.2 and removed pr-to-review Label for PR that are ready to been reviewed labels Jan 30, 2025
@dario-coscia
Copy link
Collaborator

@FilippoOlivo @gc031298 This refactoring looks very nice!

@FilippoOlivo FilippoOlivo marked this pull request as ready for review February 5, 2025 10:16
@FilippoOlivo FilippoOlivo added pr-to-review Label for PR that are ready to been reviewed and removed pr-to-fix Label for PR that needs modification labels Feb 5, 2025
pina/graph.py Outdated

x, pos, edge_index = self._check_input_consistency(x, pos, edge_index)
print(len(pos))
if edge_index is None:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i don't know if this is nice to be kept here.. why radius and not knn? Do we really need a temporal graph? One could do a normal RadiusGraph and then add time as additional parameter

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok. As for now I remove TemporalGraph

internal_func=internal_func,
external_func=external_func)
self.n_layers = n_layers
self.forward = self.forward_shared
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like a lot this forward separation, is there a way to combine the two?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In order to have an efficient way to store parameters (avoid to use torch.nn.ModuleList with the same model repeated n_layer times), another possible solution is using an if in the forward. Otherwise I can define another 2 classes: one for the shared_weights and one for the non shared_weights. Let me know what how to proceed

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can keep it like this for the moment, maybe two classes is the best but for a single model I would not care a lot

@dario-coscia
Copy link
Collaborator

@FilippoOlivo @gc031298 overall very nice, this looks a very nice integration in PINA! Just minor changes, I think we will be able to merge it soon :))

@ndem0 ndem0 merged commit 27d7398 into mathLab:0.2 Feb 6, 2025
15 of 16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr-to-review Label for PR that are ready to been reviewed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Graph class implementation
4 participants