Spaces:
Running on Zero
Running on Zero
Download third_parties/dsine/models/conv_encoder_decoder/dense_depth.py from LongmaoLab/AniGen: direct link, hf CLI and curl.
- Browser
- Download file 1.3 kB
-
https://huggingface.co/spaces/LongmaoLab/AniGen/resolve/main/third_parties/dsine/models/conv_encoder_decoder/dense_depth.py
- Command line
-
hf download hf://spaces/LongmaoLab/AniGen/third_parties/dsine/models/conv_encoder_decoder/dense_depth.py
-
curl -L -o dense_depth.py https://huggingface.co/spaces/LongmaoLab/AniGen/resolve/main/third_parties/dsine/models/conv_encoder_decoder/dense_depth.py
1.3 kB
| """ The code below is an adaptation of DenseDepth (https://github.com/ialhashim/DenseDepth) | |
| We replaced the BatchNorm with GroupNorm, | |
| added weight standardization, | |
| added convex upsampling layer, | |
| and allowed the backbone and decoder depth to be changeable | |
| """ | |
| import torch | |
| import torch.nn as nn | |
| import torch.nn.functional as F | |
| from models.conv_encoder_decoder.submodules import Encoder, Decoder | |
| class DenseDepth(nn.Module): | |
| def __init__(self, num_classes, | |
| B=5, pretrained=True, | |
| NF=2048, BN=True, | |
| down=2, learned_upsampling=True, | |
| **kwargs): | |
| super(DenseDepth, self).__init__() | |
| self.encoder = Encoder(B=B, pretrained=pretrained) | |
| self.decoder = Decoder(num_classes=num_classes, | |
| B=B, NF=NF, BN=BN, | |
| down=down, learned_upsampling=learned_upsampling, | |
| **kwargs) | |
| def forward(self, x, **kwargs): | |
| return self.decoder(self.encoder(x), **kwargs) | |
| def get_1x_lr_params(self): # lr/10 learning rate | |
| return self.encoder.parameters() | |
| def get_10x_lr_params(self): # lr learning rate | |
| modules = [self.decoder] | |
| for m in modules: | |
| yield from m.parameters() | |