(
self,
spatial_size: Sequence[int],
rand_size: Sequence[int],
pad: int = 0,
field_mode: str = InterpolateMode.AREA,
align_corners: bool | None = None,
prob: float = 0.1,
def_range: Sequence[float] | float = 1.0,
grid_dtype=torch.float32,
grid_mode: str = GridSampleMode.NEAREST,
grid_padding_mode: str = GridSamplePadMode.BORDER,
grid_align_corners: bool | None = False,
device: torch.device | None = None,
)
| 365 | backend = [TransformBackends.TORCH] |
| 366 | |
| 367 | def __init__( |
| 368 | self, |
| 369 | spatial_size: Sequence[int], |
| 370 | rand_size: Sequence[int], |
| 371 | pad: int = 0, |
| 372 | field_mode: str = InterpolateMode.AREA, |
| 373 | align_corners: bool | None = None, |
| 374 | prob: float = 0.1, |
| 375 | def_range: Sequence[float] | float = 1.0, |
| 376 | grid_dtype=torch.float32, |
| 377 | grid_mode: str = GridSampleMode.NEAREST, |
| 378 | grid_padding_mode: str = GridSamplePadMode.BORDER, |
| 379 | grid_align_corners: bool | None = False, |
| 380 | device: torch.device | None = None, |
| 381 | ): |
| 382 | super().__init__(prob) |
| 383 | |
| 384 | self.grid_dtype = grid_dtype |
| 385 | self.grid_mode = grid_mode |
| 386 | self.def_range = def_range |
| 387 | self.device = device |
| 388 | self.grid_align_corners = grid_align_corners |
| 389 | self.grid_padding_mode = grid_padding_mode |
| 390 | |
| 391 | if isinstance(def_range, (int, float)): |
| 392 | self.def_range = (-def_range, def_range) |
| 393 | else: |
| 394 | if len(def_range) != 2: |
| 395 | raise ValueError("Argument `def_range` should be a number or pair of numbers.") |
| 396 | |
| 397 | self.def_range = (min(def_range), max(def_range)) |
| 398 | |
| 399 | self.sfield = SmoothField( |
| 400 | spatial_size=spatial_size, |
| 401 | rand_size=rand_size, |
| 402 | pad=pad, |
| 403 | low=self.def_range[0], |
| 404 | high=self.def_range[1], |
| 405 | channels=len(rand_size), |
| 406 | mode=field_mode, |
| 407 | align_corners=align_corners, |
| 408 | device=device, |
| 409 | ) |
| 410 | |
| 411 | grid_space = tuple(spatial_size) if spatial_size is not None else self.sfield.field.shape[2:] |
| 412 | grid_ranges = [torch.linspace(-1, 1, d) for d in grid_space] |
| 413 | |
| 414 | grid = meshgrid_ij(*grid_ranges) |
| 415 | |
| 416 | self.grid = torch.stack(grid).unsqueeze(0).to(self.device, self.grid_dtype) |
| 417 | |
| 418 | def set_random_state(self, seed: int | None = None, state: np.random.RandomState | None = None) -> Randomizable: |
| 419 | super().set_random_state(seed, state) |
nothing calls this directly
no test coverage detected