Exp A-01
Revisado o código da WGAN e rodado o treinamento (baseline)
Gen Full Resnet + Disc StyleGAN + Loss WGAN
Constraint nas camadas dentro do intervalo [-0.01, 0.01]
Batch Size = 10 para acelerar o treinamento
Exp A-02
Igual ao Exp A-01, porém sem restrição nas camadas
Habilitado cache para tentar acelerar ainda mais o treinamento

Exp A-03
Usar ClipConstraint (https://machinelearningmastery.com/how-to-code-a-wasserstein-generative-adversarial-network-wgan-from-scratch/)
# clip model weights to a given hypercube
class ClipConstraint(Constraint):
# set clip value when initialized
def __init__(self, clip_value):
self.clip_value = clip_value
# clip model weights to hypercube
def __call__(self, weights):
return backend.clip(weights, -self.clip_value, self.clip_value)
# get the config
def get_config(self):
return {'clip_value': self.clip_value}
...
# define the constraint
const = ClipConstraint(0.01)
...
# use the constraint in a layer
model.add(Conv2D(..., kernel_constraint=const))
Exp A-04
Igual ao Exp A-01, porém sem restrição nas camadas e com penalidade de gradiente
Batch Size = 8 (dava OOM com 10)