public DGAN() { discriminator = InputLayer.Create(StartSide, 1); discriminator_back = ActivationLayer.Create <Sigmoid>(); discriminator.Append( FCLayer.Create(1, 256).Append( ActivationLayer.Create <LeakyReLU>().Append( FCLayer.Create(1, 1).Append( discriminator_back )))); generator = InputLayer.Create(1, LatentSize); generator_back = ActivationLayer.Create <Tanh>(); generator.Append( FCLayer.Create(1, 256).Append( ActivationLayer.Create <LeakyReLU>().Append( DropoutLayer.Create(0.5f).Append( FCLayer.Create(1, 512).Append( ActivationLayer.Create <LeakyReLU>().Append( DropoutLayer.Create(0.5f).Append( FCLayer.Create(1, OutputSize).Append( generator_back )))))))); //Initialize Weights discriminator.SetupInternalState(); discriminator.InitializeWeights(new UniformWeightInitializer(3, 0)); generator.SetupInternalState(); generator.InitializeWeights(new UniformWeightInitializer(1, 0)); }
public GAN() { #region 128x128 /*discriminator = InputLayer.Create(StartSide, 3); * discriminator_back = ActivationLayer.Create<Sigmoid>(); * discriminator.Append( * ConvLayer.Create(3, 8).Append( //o = 126 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8).Append( //o = 124 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8).Append( //o = 122 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8).Append( //o = 120 * ActivationLayer.Create<LeakyReLU>().Append( * pooling_1.Append( //o = 60 * ConvLayer.Create(3, 8).Append( //o = 58 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8).Append( //o = 56 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8).Append( //o = 54 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8).Append( //o = 52 * ActivationLayer.Create<LeakyReLU>().Append( * pooling_2.Append( //o = 26 * ConvLayer.Create(3, 8).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8).Append( //o = 22 * ActivationLayer.Create<LeakyReLU>().Append( * pooling_3.Append( //o = 11 * ConvLayer.Create(3, 8).Append( //o = 22 * ActivationLayer.Create<LeakyReLU>().Append( * FCLayer.Create(1, 1).Append( * discriminator_back * ))))))))))))))))))))))))))); * * generator = InputLayer.Create(32, 8); * generator_back = ActivationLayer.Create<Tanh>(); * generator.Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 3, 2).Append( //o = 26 * generator_back * ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));*/ #endregion /* * discriminator = InputLayer.Create(StartSide, 3); * discriminator_back = ActivationLayer.Create<Sigmoid>(); * discriminator.Append( * ConvLayer.Create(3, 8).Append( //o = 30 * ActivationLayer.Create<LeakyReLU>().Append( * DropoutLayer.Create(0.2f).Append( * FCLayer.Create(1, 512).Append( //o = 28 * ActivationLayer.Create<LeakyReLU>().Append( * DropoutLayer.Create(0.2f).Append( * FCLayer.Create(1, 256).Append( //o = 26 * ActivationLayer.Create<LeakyReLU>().Append( * DropoutLayer.Create(0.2f).Append( * FCLayer.Create(1, 256).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * DropoutLayer.Create(0.2f).Append( * FCLayer.Create(1, 128).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * DropoutLayer.Create(0.2f).Append( * FCLayer.Create(1, 64).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * DropoutLayer.Create(0.2f).Append( * FCLayer.Create(1, 32).Append( //o = 24 * ActivationLayer.Create<LeakyReLU>().Append( * DropoutLayer.Create(0.2f).Append( * FCLayer.Create(1, 1).Append( * discriminator_back * ))))))))))))))))))))))); * * generator = InputLayer.Create(1, LatentSize); * generator_back = ActivationLayer.Create<Tanh>(); * generator.Append( * FCLayer.Create(1, 32).Append( //o = 18 * ActivationLayer.Create<LeakyReLU>().Append( * DropoutLayer.Create(0.3f).Append( * FCLayer.Create(1, 64).Append( //o = 18 * ActivationLayer.Create<LeakyReLU>().Append( * DropoutLayer.Create(0.3f).Append( * FCLayer.Create(1, 128).Append( //o = 18 * ActivationLayer.Create<LeakyReLU>().Append( * DropoutLayer.Create(0.3f).Append( * FCLayer.Create(1, 256).Append( //o = 18 * ActivationLayer.Create<LeakyReLU>().Append( * DropoutLayer.Create(0.3f).Append( * FCLayer.Create(1, 256).Append( //o = 18 * ActivationLayer.Create<LeakyReLU>().Append( * DropoutLayer.Create(0.3f).Append( * FCLayer.Create(1, 512).Append( //o = 18 * ActivationLayer.Create<LeakyReLU>().Append( * DropoutLayer.Create(0.3f).Append( * FCLayer.Create(16, 2).Append( //o = 18 * ActivationLayer.Create<LeakyReLU>().Append( * ConvLayer.Create(3, 8, 2).Append( //o = 18 * ActivationLayer.Create<LeakyReLU>().Append( * DropoutLayer.Create(0.3f).Append( * FCLayer.Create(EndSide, 3).Append( //o = 18 * ActivationLayer.Create<LeakyReLU>().Append( * generator_back * ))))))))))))))))))))))))));*/ discriminator = InputLayer.Create(StartSide, 3); discriminator_back = ActivationLayer.Create <Sigmoid>(); discriminator.Append( FCLayer.Create(1, 1024).Append( ActivationLayer.Create <LeakyReLU>().Append( DropoutLayer.Create(0.3f).Append( FCLayer.Create(1, 512).Append( ActivationLayer.Create <LeakyReLU>().Append( DropoutLayer.Create(0.3f).Append( FCLayer.Create(1, 256).Append( ActivationLayer.Create <LeakyReLU>().Append( DropoutLayer.Create(0.3f).Append( FCLayer.Create(1, 256).Append( ActivationLayer.Create <LeakyReLU>().Append( DropoutLayer.Create(0.3f).Append( FCLayer.Create(1, 64).Append( ActivationLayer.Create <LeakyReLU>().Append( DropoutLayer.Create(0.3f).Append( FCLayer.Create(1, 64).Append( ActivationLayer.Create <LeakyReLU>().Append( DropoutLayer.Create(0.3f).Append( FCLayer.Create(1, 1).Append( discriminator_back )))))))))))))))))))); generator = InputLayer.Create(1, LatentSize); generator_back = ActivationLayer.Create <Tanh>(); generator.Append( FCLayer.Create(1, 128).Append( ActivationLayer.Create <ReLU>().Append( FCLayer.Create(1, 256).Append( ActivationLayer.Create <ReLU>().Append( FCLayer.Create(1, 256).Append( ActivationLayer.Create <ReLU>().Append( DropoutLayer.Create(0.5f).Append( FCLayer.Create(1, 256).Append( ActivationLayer.Create <ReLU>().Append( FCLayer.Create(1, 512).Append( ActivationLayer.Create <ReLU>().Append( FCLayer.Create(1, 1024).Append( ActivationLayer.Create <ReLU>().Append( FCLayer.Create(32, 3).Append( generator_back ))))))))))))))); encoder = InputLayer.Create(32, 3); encoder_back = ActivationLayer.Create <LeakyReLU>(); encoder.Append( FCLayer.Create(1, 1024).Append( ActivationLayer.Create <ReLU>().Append( FCLayer.Create(1, 512).Append( ActivationLayer.Create <ReLU>().Append( FCLayer.Create(1, 256).Append( ActivationLayer.Create <ReLU>().Append( DropoutLayer.Create(0.5f).Append( FCLayer.Create(1, 256).Append( ActivationLayer.Create <ReLU>().Append( FCLayer.Create(1, 256).Append( ActivationLayer.Create <ReLU>().Append( FCLayer.Create(1, 128).Append( ActivationLayer.Create <ReLU>().Append( FCLayer.Create(1, LatentSize).Append( encoder_back ))))))))))))))); //Initialize Weights discriminator.SetupInternalState(); discriminator.InitializeWeights(new UniformWeightInitializer(3, 0)); generator.SetupInternalState(); generator.InitializeWeights(new UniformWeightInitializer(1, 0)); encoder.SetupInternalState(); encoder.InitializeWeights(new UniformWeightInitializer(2, 0)); }