Subsamples features using Greedy Coreset. Args: features: [N x D]
(
self, features: Union[torch.Tensor, np.ndarray]
)
| 60 | return mapper(features) |
| 61 | |
| 62 | def run( |
| 63 | self, features: Union[torch.Tensor, np.ndarray] |
| 64 | ) -> Union[torch.Tensor, np.ndarray]: |
| 65 | """Subsamples features using Greedy Coreset. |
| 66 | |
| 67 | Args: |
| 68 | features: [N x D] |
| 69 | """ |
| 70 | if self.percentage == 1: |
| 71 | return features |
| 72 | self._store_type(features) |
| 73 | if isinstance(features, np.ndarray): |
| 74 | features = torch.from_numpy(features) |
| 75 | reduced_features = self._reduce_features(features) |
| 76 | sample_indices = self._compute_greedy_coreset_indices(reduced_features) |
| 77 | features = features[sample_indices] |
| 78 | return self._restore_type(features) |
| 79 | |
| 80 | @staticmethod |
| 81 | def _compute_batchwise_differences( |