Download src/models/encoder.py from Michal-Raszkowski/style-transfer-adain: direct link, hf CLI and curl.
- Browser
- Download file 952 Bytes
-
https://huggingface.co/spaces/Michal-Raszkowski/style-transfer-adain/resolve/refs%2Fpr%2F1/src/models/encoder.py
- Command line
-
hf download hf://spaces/Michal-Raszkowski/style-transfer-adain@refs/pr/1/src/models/encoder.py
-
curl -L -o encoder.py https://huggingface.co/spaces/Michal-Raszkowski/style-transfer-adain/resolve/refs%2Fpr%2F1/src/models/encoder.py
952 Bytes
| import torch.nn as nn | |
| from torchvision.models import vgg19, VGG19_Weights | |
| class VGGEncoder(nn.Module): | |
| def __init__(self): | |
| super().__init__() | |
| vgg = vgg19(weights=VGG19_Weights.DEFAULT).features | |
| self.slice1 = nn.Sequential() | |
| self.slice2 = nn.Sequential() | |
| self.slice3 = nn.Sequential() | |
| self.slice4 = nn.Sequential() | |
| for x in range(2): | |
| self.slice1.add_module(str(x), vgg[x]) | |
| for x in range(2, 7): | |
| self.slice2.add_module(str(x), vgg[x]) | |
| for x in range(7, 12): | |
| self.slice3.add_module(str(x), vgg[x]) | |
| for x in range(12, 21): | |
| self.slice4.add_module(str(x), vgg[x]) | |
| for param in self.parameters(): | |
| param.requires_grad = False | |
| def forward(self, x): | |
| h1 = self.slice1(x) | |
| h2 = self.slice2(h1) | |
| h3 = self.slice3(h2) | |
| h4 = self.slice4(h3) | |
| return h1, h2, h3, h4 |