Download pointcept/models/utils/misc.py from dfki-av/BIMStruct3D-segmentation: direct link, hf CLI and curl.
- Browser
- Download file 932 Bytes
-
https://huggingface.co/dfki-av/BIMStruct3D-segmentation/resolve/main/pointcept/models/utils/misc.py
- Command line
-
hf download hf://dfki-av/BIMStruct3D-segmentation/pointcept/models/utils/misc.py
-
curl -L -o misc.py https://huggingface.co/dfki-av/BIMStruct3D-segmentation/resolve/main/pointcept/models/utils/misc.py
932 Bytes
| """ | |
| General Utils for Models | |
| Author: Xiaoyang Wu (xiaoyang.wu.cs@gmail.com) | |
| Please cite our work if the code is helpful to you. | |
| """ | |
| import torch | |
| from itertools import chain | |
| def offset2bincount(offset): | |
| return torch.diff( | |
| offset, prepend=torch.tensor([0], device=offset.device, dtype=torch.long) | |
| ) | |
| def bincount2offset(bincount): | |
| return torch.cumsum(bincount, dim=0) | |
| def offset2batch(offset): | |
| bincount = offset2bincount(offset) | |
| return torch.arange( | |
| len(bincount), device=offset.device, dtype=torch.long | |
| ).repeat_interleave(bincount) | |
| def batch2offset(batch): | |
| return torch.cumsum(batch.bincount(), dim=0).long() | |
| def off_diagonal(x): | |
| # return a flattened view of the off-diagonal elements of a square matrix | |
| n, m = x.shape | |
| assert n == m | |
| return x.flatten()[:-1].view(n - 1, n + 1)[:, 1:].flatten() | |