Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Save the distribution of branch norms, and the tree structure of branches over time, including non-sampled branches.
To do:
Rather than just BranchValues (which contains no information on how each expectation value is positioned within its lineage in the tree), Can you also keep track of and save a tree-structure every synchronization time, which includes nodes for the discarded brances, which come from accepted branch decompsitions where the max_branches budget was too small to support them (they were accepted but not sampled in the # --- Branch Sampling --- phase). This tree structure should have information on the timestep when each branch was created, the wall clock time when it was created, its probability, whether it was sampled, its id, whether it has children, where in the lattice the branching occurred, etc. but not the actual MPS tensors themselves. This tree structure should be kept updated regularly, but only saved every time self.save() is run. Probably the cleanest way to do this is just to use the BranchingMPS class itself as this tree structure, making sure also to create (mostly empty) nodes for non-sampled branches and making sure that each node has all of the requisite info, then just make a function to turn the BranchingMPS class into a stripped down tree without the tensors, which can be saved to disc every time self.save() is run.