Cytnx icon indicating copy to clipboard operation
Cytnx copied to clipboard

Network output label inheritance

Open j9263178 opened this issue 2 years ago • 2 comments

@pcchen and @manuschneider suggest that the output tensor of a Network should by default inherits the labels from the input tensors (not from the labels in the Network file) which they find it more natural as it is the case with Contract(s), and user don't need to relabel the output tensor (or take care of the output label explicitly TOUT line).

One simple solution is to add an argument like inherit_label, when it is true user can still define the network label freely while one more extra relabel step on the output tensor will be performed after the contraction.

The implementation of this can be easily done and there should be no modifications needed to the example codes that use the Network, but since we are introducing more and more arguments I'm not sure if this will make the API design not compact and more confusing.

j9263178 avatar Oct 18 '23 16:10 j9263178

We sort of agree that we keep the current behavior for now, but inheriting labels from input tensors is a highly desired new function that we should seriously consider to add it. Let's discuss it after the draft is out.

chiamin avatar Oct 26 '23 01:10 chiamin

Yes. Let's do it step by step. In this case it's as simple as just ask user to add single line at the end to map the labels. I don't see why this will be an crazy issue.

Dont try to do everything in single API call, it will just hurt yourself later for too much restriction

kaihsin avatar Oct 26 '23 01:10 kaihsin