fastdev.utils.tensor

Module Contents

fastdev.utils.tensor.to_numpy(x: torch.Tensor, preserve_list: bool = ...) numpy.ndarray[source]
fastdev.utils.tensor.to_numpy(x: numpy.ndarray, preserve_list: bool = ...) numpy.ndarray
fastdev.utils.tensor.to_numpy(x: numpy.typing.ArrayLike, preserve_list: bool = ...) numpy.ndarray
fastdev.utils.tensor.to_numpy(x: None, preserve_list: bool = ...) None
fastdev.utils.tensor.to_numpy(x: Dict[Any, Any], preserve_list: bool = ...) Dict[Any, numpy.ndarray]
fastdev.utils.tensor.to_numpy(x: List[Any], preserve_list: Literal[True]) List[numpy.ndarray]
fastdev.utils.tensor.to_numpy(x: List[Any], preserve_list: Literal[False] = ...) numpy.ndarray
fastdev.utils.tensor.to_numpy(x: Tuple[Any, Ellipsis], preserve_list: Literal[True]) Tuple[numpy.ndarray, Ellipsis]
fastdev.utils.tensor.to_numpy(x: Tuple[Any, Ellipsis], preserve_list: Literal[False] = ...) numpy.ndarray

Convert input to numpy array.

Parameters:
  • x (Any) – Input to be converted.

  • preserve_list (bool, optional) – Whether to preserve list or convert to numpy array. Defaults to True.

fastdev.utils.tensor.to_torch(x: numpy.ndarray, preserve_list: bool = ...) torch.Tensor[source]
fastdev.utils.tensor.to_torch(x: torch.Tensor, preserve_list: bool = ...) torch.Tensor
fastdev.utils.tensor.to_torch(x: None, preserve_list: bool = ...) None
fastdev.utils.tensor.to_torch(x: Dict[Any, Any], preserve_list: bool = ...) Dict[Any, torch.Tensor]
fastdev.utils.tensor.to_torch(x: List[Any], preserve_list: Literal[True]) List[torch.Tensor]
fastdev.utils.tensor.to_torch(x: List[Any], preserve_list: Literal[False] = ...) torch.Tensor
fastdev.utils.tensor.to_torch(x: Tuple[Any, Ellipsis], preserve_list: Literal[True]) Tuple[torch.Tensor, Ellipsis]
fastdev.utils.tensor.to_torch(x: Tuple[Any, Ellipsis], preserve_list: Literal[False] = ...) torch.Tensor

Convert input to torch tensor.

Parameters:
  • x (Any) – Input to be converted.

  • preserve_list (bool, optional) – Whether to preserve list or convert to torch tensor. Defaults to True.

fastdev.utils.tensor.to_number(x: None) None[source]
fastdev.utils.tensor.to_number(x: int) int
fastdev.utils.tensor.to_number(x: float) float
fastdev.utils.tensor.to_number(x: numpy.ndarray) int | float
fastdev.utils.tensor.to_number(x: torch.Tensor) int | float

Convert input to number.

Parameters:

x (Any) – Input to be converted.

fastdev.utils.tensor.auto_cast(fn: Callable | None = None, return_type: Literal['by_input', 'by_func', 'pt', 'np'] = 'by_input') Callable[source]

Automatically cast input and output of a function to numpy or torch tensors. Since the function simply converts the input and output to numpy or torch tensors, it may introduce overhead. It is recommended to use this function for functions that are not performance critical.

Parameters:
  • fn (Callable) – Function to be wrapped.

  • return_type (Literal["by_input", "by_func", "pt", "np"], optional) – Type of return value. Defaults to “by_input”. - “by_input”: Return type is determined by the input argument type, first found array/tensor type is used. - “by_func”: Return type is determined by the orginal function. - “pt”: Return type is torch.Tensor. - “np”: Return type is np.ndarray.

Returns:

Wrapped function.

Return type:

Callable

fastdev.utils.tensor.atleast_nd(tensor: None, expected_ndim: int) None[source]
fastdev.utils.tensor.atleast_nd(tensor: numpy.ndarray, expected_ndim: int) numpy.ndarray
fastdev.utils.tensor.atleast_nd(tensor: torch.Tensor, expected_ndim: int) torch.Tensor

Convert input to at least nD tensor.

Note

Differs from np.atleast_nd and torch.atleast_nd, this function can add dimensions to the front or back of the tensor.