returnn.frontend._utils
¶
Internal utils
- returnn.frontend._utils.get_backend_from_tensors(*args)[source]¶
- Parameters:
args
- Returns:
frontend, fallback to global frontend
- returnn.frontend._utils.get_dtype_name(x: T | Tensor[T] | int | float) str [source]¶
- Parameters:
x – tensor
- Returns:
dtype of tensor, as string
- returnn.frontend._utils.is_int(x: T | Tensor[T] | int | float) bool [source]¶
- Parameters:
x
- Returns:
whether the dtype is int
- returnn.frontend._utils.bin_op_out_template(backend: Type[Backend], a: Tensor[T] | int | float | number, b: Tensor[T] | int | float | number, *, name: str, copy_sparse_dim: bool = True, allow_broadcast_all_sources: bool | None = None, dim_order: Sequence[Dim] | None = None, allow_scalar: bool = True) Tuple[Tensor[T], T, T] [source]¶
make template for output tensor of binary op
- Parameters:
backend
a
b
name – for returned Tensor. no other functionality
copy_sparse_dim
allow_broadcast_all_sources – if True, it is allowed that neither a nor b has all dims of the result. Not needed when out_dims is specified explicitly.
dim_order – defines the order of the resulting dims. if None, it is automatically inferred from a and b. Not all the dims of a and b need to be specified here, and there could also be other dims in the dim_order.
allow_scalar – if True, it is allowed that a or b is a scalar, and then no broadcast dims are added. This can be relevant to allow things like x * 2, where x in on GPU, and then PyTorch allows 2 to stay on CPU.
- Returns:
out, a_raw, b_raw
- returnn.frontend._utils.res_feature_dim(a: Tensor, b: Tensor) Dim | None [source]¶
- Parameters:
a
b
- Returns:
feature dim if consistent or None
- returnn.frontend._utils.res_sparse_dim(a: Tensor, b: Tensor) Dim | None [source]¶
- Parameters:
a
b
- Returns:
sparse dim if consistent or None
- returnn.frontend._utils.strided_slice_raw_key(tensor: Tensor, axis: Dim | Sequence[Dim] | None = None, key: int | float | complex | number | ndarray | bool | str | Tensor | slice | Sequence[int | float | complex | number | ndarray | bool | str | Tensor | slice] | None = None, key_dim: Dim | Sequence[Dim] | None = None) Tuple[slice | int | T | Sequence[None | slice | int | T], Tuple[Dim, ...]] [source]¶
Given an axis and a key, return a raw key that can be used to index into a raw tensor, as in raw_tensor[key]. The tensor is needed to infer the raw axis index.
- Returns:
raw item key, resulting dims of reduced tensor