direct training
This commit is contained in:
+2
-2
@@ -35,10 +35,10 @@ class VariationalEncoder(nn.Module):
|
||||
|
||||
class AEEncoder(nn.Module):
|
||||
|
||||
def __init__(self, block_setting: CNBlockConfig, kernel_size: int = 7, activation='tanh', is_label=False, nr_of_labels=None, device='cuda'):
|
||||
def __init__(self, block_setting: CNBlockConfig, kernel_size: int = 7, activation='tanh', is_label=False, nr_of_labels=None, device='cuda', input_features=3):
|
||||
super(AEEncoder, self).__init__()
|
||||
|
||||
self.encoder = ConvNeXt(block_setting=block_setting, kernel_size=kernel_size, is_label=is_label, nr_of_labels=nr_of_labels, device=device)
|
||||
self.encoder = ConvNeXt(block_setting=block_setting, kernel_size=kernel_size, is_label=is_label, nr_of_labels=nr_of_labels, device=device, input_features=input_features)
|
||||
if activation == 'tanh':
|
||||
self.act = nn.Tanh()
|
||||
elif activation == 'sigmoid':
|
||||
|
||||
@@ -8,7 +8,7 @@ class AutoEncoder(nn.Module):
|
||||
def __init__(self, config):
|
||||
super(AutoEncoder, self).__init__()
|
||||
|
||||
self.encoder : AEEncoder = AEEncoder(config['encoder_block_settings'], config['kernel_size'], config['activation'], is_label=config['is_label'], device=config['device'], nr_of_labels=7)
|
||||
self.encoder : AEEncoder = AEEncoder(config['encoder_block_settings'], config['kernel_size'], config['activation'], is_label=config['is_label'], device=config['device'], nr_of_labels=7, input_features=config['input_features'])
|
||||
self.decoder : Decoder = Decoder(config['decoder_block_settings'], kernel_size=config['kernel_size'], is_label=config['is_label'], device=config['device'], nr_of_classes=6)
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
import torch
|
||||
from torch import nn
|
||||
from models.convnext_orig import ConvNeXt, CNBlock, CNBlockConfig
|
||||
from typing import Any, Callable, List, Optional, Sequence
|
||||
|
||||
|
||||
class DirectModel(nn.Module):
|
||||
|
||||
def __init__(self, block_setting: List[CNBlockConfig], kernel_size: int = 7, input_features: int = 16, device: str = 'cuda'):
|
||||
super(DirectModel, self).__init__()
|
||||
|
||||
self.encoder = ConvNeXt(block_setting=block_setting, kernel_size=kernel_size, input_features=input_features, device=device)
|
||||
self.decoder = ConvNeXt(block_setting=block_setting, kernel_size=kernel_size, device=device, reversed=True)
|
||||
|
||||
layers = [CNBlock(block_setting[-1].input_channels, kernel_size=kernel_size) for _ in range(5)]
|
||||
self.mean_branch = nn.Sequential(*layers).to(device)
|
||||
layers = [CNBlock(block_setting[-1].input_channels, kernel_size=kernel_size) for _ in range(5)]
|
||||
self.var_branch = nn.Sequential(*layers).to(device)
|
||||
|
||||
self.flatten_mean = nn.Flatten()
|
||||
self.flatten_var = nn.Flatten()
|
||||
|
||||
|
||||
def forward(self, inputs):
|
||||
body, template = inputs
|
||||
|
||||
x = self.encoder(x)
|
||||
|
||||
return mean
|
||||
Reference in New Issue
Block a user