# clock-vae-mono-100x-v1 원하는 시간의 아날로그 시계 데이터를 생성하기 위해 만들어진 VAE 모델. --- ## name definition - clock-vae : model name
- mono : color type(color or mono)
- 100x : image size(100x100)
- v1 : version
--- ## model define code ```py class ConditionalVAE(nn.Module): def __init__(self, input_dim, condition_dim, latent_dim): super(MonoClockVAEHandler.ConditionalVAE, self).__init__() self.encoder = nn.Sequential( nn.Linear(input_dim + condition_dim, 400), nn.ReLU(), nn.Linear(400, 200), nn.ReLU(), ) self.fc_mu = nn.Linear(200, latent_dim) self.fc_logvar = nn.Linear(200, latent_dim) self.decoder = nn.Sequential( nn.Linear(latent_dim + condition_dim, 200), nn.ReLU(), nn.Linear(200, 400), nn.ReLU(), nn.Linear(400, input_dim), nn.Sigmoid() ) def encode(self, x, condition): x = x.view(x.size(0), -1) condition = condition.view(condition.size(0), -1) x_cond = torch.cat([x, condition], dim=1) h = self.encoder(x_cond) mu = self.fc_mu(h) logvar = self.fc_logvar(h) return mu, logvar def reparameterize(self, mu, logvar): std = torch.exp(0.5 * logvar) eps = torch.randn_like(std) return mu + eps * std def decode(self, z, condition): z_cond = torch.cat([z, condition], dim=1) return self.decoder(z_cond) def forward(self, x, condition): mu, logvar = self.encode(x, condition) z = self.reparameterize(mu, logvar) return self.decode(z, condition), mu, logvar ```