trait GanModel : Parameterized + Generative {
struct GanLosses train_step(const &FloatTensor real, ?&FloatTensor labels);
struct GanLosses train(const &Dataset data, unsigned long epochs, unsigned long batchSize);
}What a trainable GAN offers (Gan and Dcgan; CpuGanTrainer is generic over it): its two training entry points, its tensors and sampling.