If self.learn_geometry is True but init_barycenter_geometry is None, the geometric cost matrix of the barycenter is filled with ones:
barycenter_geometry = (
torch.ones((barycenter_size, barycenter_size)).to(device)
/ barycenter_size
)
This is an appropriate initialization when the cost matrix is learnt in the free support case but not in the fixed support case where it is kept during the whole optimization process.