Exemplo n.º 1
0
    def build(self, net):
        config = self.config
        gan = self.gan
        ops = self.ops

        discriminator = DCGANDiscriminator(gan, config)
        discriminator.ops = ops
        encoder = UniformDistribution(gan, gan.config.encoder)

        # careful, this order matters
        g2 = gan.generator.reuse(encoder.create())
        double = tf.concat([net] + [g2, g2], axis=0)
        original = discriminator.build(double)
        d1 = self.split_batch(original, 4)

        dg = ops.concat([d1[2], d1[3]], axis=0) # xs for baseline

        #dx is a sampling of x twice
        dx = ops.concat([d1[0], d1[0]], axis=0) # xs for baseline

        xinput = ops.concat([d1[0], d1[1]], axis=0)

        #dg  is a sampling of g twice

        # net is [x,g] (stacked)
        error = self.f(xinput, dx, dg)
        return error
Exemplo n.º 2
0
 def test_projection_gaussian(self):
     config = {
             "projections": ['identity', 'gaussian'],
             "z": 2,
             "min": 0,
             "max": 1
             }
     subject = UniformDistribution(gan, config)
     projections = subject.create()
     assert int(projections.get_shape()[1]) == len(config['projections'])*config['z']
Exemplo n.º 3
0
 def test_projection(self):
     config = {
             "projections": [hg.distributions.uniform_distribution.identity],
             "z": 2,
             "min": 0,
             "max": 1
             }
     subject = UniformDistribution(gan, config)
     projections = subject.create()
     assert subject.ops.shape(projections)[1] == 2
 def test_projection_gaussian(self):
     config = {
             "projections": ['identity', 'gaussian'],
             "z": 2,
             "min": 0,
             "max": 1
             }
     subject = UniformDistribution(gan, config)
     with self.test_session():
         projections = subject.create()
         self.assertEqual(int(projections.get_shape()[1]), len(config['projections'])*config['z'])
Exemplo n.º 5
0
 def test_projection_twice(self):
     config = {
             "projections": ['identity', 'identity'],
             "z": 2,
             "min": 0,
             "max": 1
             }
     subject = UniformDistribution(gan, config)
     with self.test_session():
         projections = subject.create()
         self.assertEqual(int(projections.get_shape()[1]), len(config['projections'])*config['z'])
Exemplo n.º 6
0
 def test_projection(self):
     config = {
             "projections": [hg.distributions.uniform_distribution.identity],
             "z": 2,
             "min": 0,
             "max": 1
             }
     subject = UniformDistribution(gan, config)
     with self.test_session():
         projections = subject.create()
         self.assertEqual(subject.ops.shape(projections)[1], 2)