Download samihs_src/utils/loss_functions/tensor_utils.py from MooreMuaMu/samihs-ich-segmentation: direct link, hf CLI and curl.
- Browser
- Download file 933 Bytes
-
https://huggingface.co/MooreMuaMu/samihs-ich-segmentation/resolve/main/samihs_src/utils/loss_functions/tensor_utils.py
- Command line
-
hf download hf://MooreMuaMu/samihs-ich-segmentation/samihs_src/utils/loss_functions/tensor_utils.py
-
curl -L -o tensor_utils.py https://huggingface.co/MooreMuaMu/samihs-ich-segmentation/resolve/main/samihs_src/utils/loss_functions/tensor_utils.py
933 Bytes
| import numpy as np | |
| import torch | |
| from torch import nn | |
| def sum_tensor(inp, axes, keepdim=False): | |
| axes = np.unique(axes).astype(int) | |
| if keepdim: | |
| for ax in axes: | |
| inp = inp.sum(int(ax), keepdim=True) | |
| else: | |
| for ax in sorted(axes, reverse=True): | |
| inp = inp.sum(int(ax)) | |
| return inp | |
| def mean_tensor(inp, axes, keepdim=False): | |
| axes = np.unique(axes).astype(int) | |
| if keepdim: | |
| for ax in axes: | |
| inp = inp.mean(int(ax), keepdim=True) | |
| else: | |
| for ax in sorted(axes, reverse=True): | |
| inp = inp.mean(int(ax)) | |
| return inp | |
| def flip(x, dim): | |
| """ | |
| flips the tensor at dimension dim (mirroring!) | |
| :param x: | |
| :param dim: | |
| :return: | |
| """ | |
| indices = [slice(None)] * x.dim() | |
| indices[dim] = torch.arange(x.size(dim) - 1, -1, -1, | |
| dtype=torch.long, device=x.device) | |
| return x[tuple(indices)] | |