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

Untitled

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)