Module facetorch.transforms
Expand source code
from typing import Union
import torch
import torchvision
from torchvision import transforms
def script_transform(
transform: transforms.Compose,
) -> Union[torch.jit.ScriptModule, torch.jit.ScriptFunction]:
"""Convert the composed transform to a TorchScript module.
Args:
transform (transforms.Compose): Transform compose object to be scripted.
Returns:
Union[torch.jit.ScriptModule, torch.jit.ScriptFunction]: Scripted transform.
"""
transform_seq = torch.nn.Sequential(*transform.transforms)
transform_jit = torch.jit.script(transform_seq)
return transform_jit
class SquarePad(torch.nn.Module):
"""SquarePad is a transform that pads the image to a square shape."""
def __init__(self) -> None:
"""It is initialized as a torch.nn.Module."""
super().__init__()
def __call__(self, tensor: torch.Tensor) -> torch.Tensor:
"""Pads a tensor to a square.
Args:
tensor (torch.Tensor): tensor to pad.
Returns:
torch.Tensor: Padded tensor.
"""
height, width = tensor.shape[-2:]
img_size = [width, height]
max_wh = max(img_size)
p_left, p_top = [(max_wh - s) // 2 for s in img_size]
p_right, p_bottom = [
max_wh - (s + pad) for s, pad in zip(img_size, [p_left, p_top])
]
padding = (p_left, p_top, p_right, p_bottom)
tensor_padded = torchvision.transforms.functional.pad(
tensor, padding, 0, "constant"
)
return tensor_padded
def forward(self, tensor: torch.Tensor) -> torch.Tensor:
"""Pads a tensor to a square.
Args:
tensor (torch.Tensor): tensor to pad.
Returns:
torch.Tensor: Padded tensor.
"""
return self.__call__(tensor)
Functions
def script_transform(transform: torchvision.transforms.transforms.Compose) ‑> Union[torch.jit._script.ScriptModule, torch.jit.ScriptFunction]
-
Convert the composed transform to a TorchScript module.
Args
transform
:transforms.Compose
- Transform compose object to be scripted.
Returns
Union[torch.jit.ScriptModule, torch.jit.ScriptFunction]
- Scripted transform.
Expand source code
def script_transform( transform: transforms.Compose, ) -> Union[torch.jit.ScriptModule, torch.jit.ScriptFunction]: """Convert the composed transform to a TorchScript module. Args: transform (transforms.Compose): Transform compose object to be scripted. Returns: Union[torch.jit.ScriptModule, torch.jit.ScriptFunction]: Scripted transform. """ transform_seq = torch.nn.Sequential(*transform.transforms) transform_jit = torch.jit.script(transform_seq) return transform_jit
Classes
class SquarePad
-
SquarePad is a transform that pads the image to a square shape.
It is initialized as a torch.nn.Module.
Expand source code
class SquarePad(torch.nn.Module): """SquarePad is a transform that pads the image to a square shape.""" def __init__(self) -> None: """It is initialized as a torch.nn.Module.""" super().__init__() def __call__(self, tensor: torch.Tensor) -> torch.Tensor: """Pads a tensor to a square. Args: tensor (torch.Tensor): tensor to pad. Returns: torch.Tensor: Padded tensor. """ height, width = tensor.shape[-2:] img_size = [width, height] max_wh = max(img_size) p_left, p_top = [(max_wh - s) // 2 for s in img_size] p_right, p_bottom = [ max_wh - (s + pad) for s, pad in zip(img_size, [p_left, p_top]) ] padding = (p_left, p_top, p_right, p_bottom) tensor_padded = torchvision.transforms.functional.pad( tensor, padding, 0, "constant" ) return tensor_padded def forward(self, tensor: torch.Tensor) -> torch.Tensor: """Pads a tensor to a square. Args: tensor (torch.Tensor): tensor to pad. Returns: torch.Tensor: Padded tensor. """ return self.__call__(tensor)
Ancestors
- torch.nn.modules.module.Module
Methods
def forward(self, tensor: torch.Tensor) ‑> torch.Tensor
-
Pads a tensor to a square.
Args
tensor
:torch.Tensor
- tensor to pad.
Returns
torch.Tensor
- Padded tensor.
Expand source code
def forward(self, tensor: torch.Tensor) -> torch.Tensor: """Pads a tensor to a square. Args: tensor (torch.Tensor): tensor to pad. Returns: torch.Tensor: Padded tensor. """ return self.__call__(tensor)