Introduce feature flag for Unet

This commit is contained in:
henryruhs
2025-03-11 14:43:09 +01:00
parent 094d5cea9e
commit 10ce04ed58
3 changed files with 44 additions and 19 deletions
+11 -7
View File
@@ -3,7 +3,7 @@ import configparser
from torch import Tensor, nn
from ..networks.attribute_modulator import AADGenerator
from ..networks.unet import UNet
from ..networks.unet import UNet, UNetPro
from ..types import Attributes, Embedding
CONFIG = configparser.ConfigParser()
@@ -13,21 +13,25 @@ CONFIG.read('config.ini')
class Generator(nn.Module):
def __init__(self) -> None:
super(Generator, self).__init__()
encoder_type = CONFIG.getint('training.model.generator', 'encoder_type')
id_channels = CONFIG.getint('training.model.generator', 'id_channels')
num_blocks = CONFIG.getint('training.model.generator', 'num_blocks')
self.unet = UNet()
self.aad_generator = AADGenerator(id_channels, num_blocks)
self.unet.apply(init_weight)
self.aad_generator.apply(init_weight)
if encoder_type == 'unet':
self.encoder = UNet()
if encoder_type == 'unet-pro':
self.encoder = UNetPro()
self.generator = AADGenerator(id_channels, num_blocks)
self.encoder.apply(init_weight)
self.generator.apply(init_weight)
def forward(self, source_embedding : Embedding, target_tensor : Tensor) -> Tensor:
target_attributes = self.get_attributes(target_tensor)
output_tensor = self.aad_generator(target_attributes, source_embedding)
output_tensor = self.generator(target_attributes, source_embedding)
return output_tensor
def get_attributes(self, input_tensor : Tensor) -> Attributes:
return self.unet(input_tensor)
return self.encoder(input_tensor)
def init_weight(module : nn.Module) -> None: