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

Method __init__

monai/transforms/smooth_field/array.py:367–416  ·  view source on GitHub ↗
(
        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,
    )

Source from the content-addressed store, hash-verified

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)

Callers

nothing calls this directly

Calls 5

meshgrid_ijFunction · 0.90
minFunction · 0.85
maxFunction · 0.85
SmoothFieldClass · 0.85
__init__Method · 0.45

Tested by

no test coverage detected