fugw.utils
#
- fugw.utils.init_plan_dense(n_source, n_target, weights_source=None, weights_target=None, method='entropic')
Initialize transport plan with dense tensor.
Generate a matrix satisfying the constraints of a transport plan. In particular, marginal constraints on lines and columns are satisfied.
- Parameters:
- n_source: int
Number of source points
- n_target: int
Number of target points
- weights_source: torch.Tensor of size(n_source), optional, defaults to None
Source weights used in entropic init
- weights_target: torch.Tensor of size(n_target), optional, defaults to None
Target weights used in entropic init
- method: str, optional, defaults to “entropic”
Method to use for initialization. Can be “entropic”, “permutation” or “identity”. If “entropic”, weights_source and weights_target must be provided ; the initial plan is then given by the product of the two arrays. If “permutation”, the initial plan is the solution to a 1D optimal transport problem between two random arrays, which can be understood as a soft permutation between source and target points. If “identity”, the number of source and target points must be equal ; the initial plan is then the identity matrix.
- Returns:
- init_plan: torch.Tensor of size(n_source, n_target)
- fugw.utils.load_mapping(fname, load_weights=True, device='cpu')
Load mapping from pickle file, optionally loading weights.
- Parameters:
- fname: str or pathlib.Path
Path to pickle file to load
- load_weights: bool, optional, defaults to True
If True, load mapping weights from pickle file.
- device: torch.device, default=”cpu”
Device on which to store the computed transport plan.
- Returns:
- mapping: fugw.mappings
- fugw.utils.save_mapping(mapping, fname)
Save mapping in pickle file, separating hyperparams and weights.
- Parameters:
- mapping: fugw.mappings
FUGW mapping to save
- fname: str or pathlib.Path
Path to pickle file to save