def __init__(self, params): super(GenerativeNetwork, self).__init__() self.params = params generative_layers = [ nn.Linear(in_features=self.params.latent_dim, out_features=self.params.hidden_dim), GELU(), UnFlatten(self.params.channels[3], self.params.hidden_height, self.params.hidden_width), nn.ConvTranspose2d(in_channels=self.params.channels[3], out_channels=self.params.channels[4], kernel_size=(self.params.kernel_size[6], self.params.kernel_size[7]), stride=self.params.stride[3]), nn.BatchNorm2d(self.params.channels[4]), GELU(), nn.ConvTranspose2d(in_channels=self.params.channels[4], out_channels=self.params.channels[5], kernel_size=(self.params.kernel_size[8], self.params.kernel_size[9]), stride=self.params.stride[4]), nn.BatchNorm2d(self.params.channels[5]), GELU(), nn.ConvTranspose2d(in_channels=self.params.channels[5], out_channels=self.params.channels[6], kernel_size=(self.params.kernel_size[10], self.params.kernel_size[11]), stride=self.params.stride[5]), nn.Sigmoid(), ] self.decoder = nn.Sequential(*generative_layers) initialize_weights(self)
def __init__(self, params): super(InferenceNetwork, self).__init__() self.params = params inference_layers = [ nn.Conv2d(in_channels=self.params.channels[0], out_channels=self.params.channels[1], kernel_size=self.params.kernel_size[0], stride=self.params.stride[0],), GELU(), nn.BatchNorm2d(self.params.channels[1]), nn.Conv2d(in_channels=self.params.channels[1], out_channels=self.params.channels[2], kernel_size=self.params.kernel_size[1], stride=self.params.stride[1]), GELU(), nn.BatchNorm2d(self.params.channels[2]), nn.Conv2d(in_channels=self.params.channels[2], out_channels=self.params.channels[3], kernel_size=self.params.kernel_size[2], stride=self.params.stride[2]), GELU(), nn.BatchNorm2d(self.params.channels[3]), Flatten(), ] self.encoder = nn.Sequential(*inference_layers) self.activation_fn = GELU() self.fc_latent = nn.Linear(in_features=self.params.hidden_dim, out_features=self.params.latent_dim) initialize_weights(self)
def __init__(self, params): super(GenerativeNetwork, self).__init__() self.params = params self.fc1 = nn.Linear(in_features=self.params.latent_dim, out_features=self.params.hidden_dim) self.fc2 = nn.Linear(in_features=self.params.hidden_dim, out_features=self.params.input_dim) self.activation_fn = GELU() initialize_weights(self)
def __init__(self, params): super(InferenceNetwork, self).__init__() self.params = params self.fc = nn.Linear(in_features=self.params.input_dim, out_features=self.params.hidden_dim) self.fc_mu = nn.Linear(in_features=self.params.hidden_dim, out_features=self.params.latent_dim) self.fc_logvar = nn.Linear(in_features=self.params.hidden_dim, out_features=self.params.latent_dim) self.activation_fn = GELU() initialize_weights(self)