Spaces:
Running on Zero
Running on Zero
Download src/models/layers/drop_path.py from ritianyu/SplatAnything: direct link, hf CLI and curl.
- Browser
- Download file 768 Bytes
-
https://huggingface.co/spaces/ritianyu/SplatAnything/resolve/main/src/models/layers/drop_path.py
- Command line
-
hf download hf://spaces/ritianyu/SplatAnything/src/models/layers/drop_path.py
-
curl -L -o drop_path.py https://huggingface.co/spaces/ritianyu/SplatAnything/resolve/main/src/models/layers/drop_path.py
768 Bytes
| # Modified for SplatAnything: inference-only release. | |
| from torch import nn | |
| def drop_path(x, drop_prob: float=0.0, training: bool=False): | |
| if drop_prob == 0.0 or not training: | |
| return x | |
| keep_prob = 1 - drop_prob | |
| shape = (x.shape[0],) + (1,) * (x.ndim - 1) | |
| random_tensor = x.new_empty(shape).bernoulli_(keep_prob) | |
| if keep_prob > 0.0: | |
| random_tensor.div_(keep_prob) | |
| output = x * random_tensor | |
| return output | |
| class DropPath(nn.Module): | |
| """Drop paths (Stochastic Depth) per sample (when applied in main path of residual blocks).""" | |
| def __init__(self, drop_prob=None): | |
| super(DropPath, self).__init__() | |
| self.drop_prob = drop_prob | |
| def forward(self, x): | |
| return drop_path(x, self.drop_prob, False) | |