MCPcopy Create free account
hub / github.com/Project-MONAI/MONAI / inverse

Method inverse

monai/transforms/compose.py:638–661  ·  view source on GitHub ↗
(self, data)

Source from the content-addressed store, hash-verified

636 return input_
637
638 def inverse(self, data):
639 if len(self.transforms) == 0:
640 return data
641
642 applied_order = None
643 if isinstance(data, monai.data.MetaTensor):
644 applied_order = self.pop_transform(data)[TraceKeys.EXTRA_INFO]["applied_order"]
645 elif isinstance(data, Mapping):
646 for key in data:
647 if isinstance(data[key], monai.data.MetaTensor):
648 applied_order = self.pop_transform(data, key)[TraceKeys.EXTRA_INFO]["applied_order"]
649 else:
650 raise RuntimeError(
651 f"Inverse only implemented for Mapping (dictionary) or MetaTensor data, got type {type(data)}."
652 )
653 if applied_order is None:
654 # no invertible transforms have been applied
655 return data
656
657 # loop backwards over transforms
658 for o in reversed(applied_order):
659 if isinstance(self.transforms[o], InvertibleTransform):
660 data = _inverse_one(self.transforms[o], data, self.map_items, self.unpack_items, self.log_stats)
661 return data
662
663
664class SomeOf(Compose):

Callers

nothing calls this directly

Calls 2

_inverse_oneFunction · 0.85
pop_transformMethod · 0.80

Tested by

no test coverage detected