Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add pipeline module and ase function #814

Merged
merged 7 commits into from Aug 3, 2021
Merged

Add pipeline module and ase function #814

merged 7 commits into from Aug 3, 2021

Conversation

daxpryce
Copy link
Contributor

@daxpryce daxpryce commented Jul 29, 2021

  • Does this PR add any new dependencies?
  • Does this PR modify any existing APIs?
    • Is the change to the API backwards compatible?
  • Have you built the documentation (reference and/or tutorial) and verified the generated documentation is appropriate?

So, this is the first commits to the pipeline module. It includes a few QOL items like an int-ifying graph builder class that will generate an nx.Graph or nx.DiGraph, a preconditions module for type checking (probably could end up in a utils module in the top level), an Embeddings return object that makes it trivial to correlate a node id to it's respective tensor, and an implementation of ASE-as-a-function.

Of particular note is that it does not use the built-in elbow finder yet, instead behaving more similarly to the topologic approach of using a combination of fixed dimensionality requested and the elbow finder on that. We've discussed addressing our graspologic.embed.AdjacencySpectralEmbed elbow-finding concerns in a meeting and we're reasonably confident we can have a consistent behavior in both in the future, but for now this works well enough.

… only in it.

One major aspect of this seemingly innocuous change is that we want to be able to seed the randomized svd.  This in turn has had a cascade of
changes in most of the spectral embeddings and their tests.

It wasn't until I was fixing these tests that I found out we weren't writing unittests using the unittest module, but instead relying solely
on pytest to find and execute all of our tests.  It has done this well for the CLI, but it breaks a lot of IDE test runner code,
making it harder to debug tests since none are actually being executed in intellij/pycharm/etc.
@netlify
Copy link

netlify bot commented Jul 29, 2021

❌ Deploy Preview for graspologic failed.

🔨 Explore the source changes: af18c2d

🔍 Inspect the deploy log: https://app.netlify.com/sites/graspologic/deploys/61086c774735200008aac149

… instead to use nx.utils.graphs_equal, but that doens't exist in 2.5 (or earlier).
- Moved preconditions and module and associated test to top level
- Adjusted documentation for more clarity and detail
- Fixed a test in omni that doens't fail now, but will likely fail later after we fix the outstanding issue in in select_svd when "randomized" algorithm is used. Namely, a lot of unit tests if we fix things correctly, so instead we're defaulting to sklearn's randomized svd behavior, and will fix this properly in another issue.
…the preconditions module to the top level, but also some further details aroudn the embed submodule of the pipeline package
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants