def network(self, image, batch_size, update_collection):
     h0 = lrelu(
         conv2d(image,
                self.dim,
                name=self.prefix + 'h0_conv',
                update_collection=update_collection,
                with_sn=self.with_sn,
                scale=self.scale,
                with_learnable_sn_scale=self.with_learnable_sn_scale,
                data_format=self.format,
                with_singular_values=True))
     h1 = lrelu(
         self.d_bn1(
             conv2d(h0,
                    self.dim * 2,
                    name=self.prefix + 'h1_conv',
                    update_collection=update_collection,
                    with_sn=self.with_sn,
                    scale=self.scale,
                    with_learnable_sn_scale=self.with_learnable_sn_scale,
                    data_format=self.format,
                    with_singular_values=True)))
     h2 = lrelu(
         self.d_bn2(
             conv2d(h1,
                    self.dim * 4,
                    name=self.prefix + 'h2_conv',
                    update_collection=update_collection,
                    with_sn=self.with_sn,
                    scale=self.scale,
                    with_learnable_sn_scale=self.with_learnable_sn_scale,
                    data_format=self.format,
                    with_singular_values=True)))
     h3 = lrelu(
         self.d_bn3(
             conv2d(h2,
                    self.dim * 8,
                    name=self.prefix + 'h3_conv',
                    update_collection=update_collection,
                    with_sn=self.with_sn,
                    scale=self.scale,
                    with_learnable_sn_scale=self.with_learnable_sn_scale,
                    data_format=self.format,
                    with_singular_values=True)))
     hF = lrelu(
         self.d_bn4(
             conv2d(h3,
                    self.o_dim,
                    name=self.prefix + 'hF_conv',
                    update_collection=update_collection,
                    with_sn=self.with_sn,
                    scale=self.scale,
                    with_learnable_sn_scale=self.with_learnable_sn_scale,
                    with_singular_values=True)))
     hF = tf.reshape(hF, [batch_size, -1])
     return {'h0': h0, 'h1': h1, 'h2': h2, 'h3': h3, 'hF': hF}
 def network(self, image, batch_size, update_collection):
     c0_0 = lrelu(
         conv2d(image,
                64,
                3,
                3,
                1,
                1,
                with_sn=self.with_sn,
                with_learnable_sn_scale=self.with_learnable_sn_scale,
                update_collection=update_collection,
                stddev=0.02,
                name=self.prefix + 'c0_0',
                data_format=self.format,
                with_singular_values=True))
     c0_1 = lrelu(
         conv2d(c0_0,
                128,
                4,
                4,
                2,
                2,
                with_sn=self.with_sn,
                with_learnable_sn_scale=self.with_learnable_sn_scale,
                update_collection=update_collection,
                stddev=0.02,
                name=self.prefix + 'c0_1',
                data_format=self.format,
                with_singular_values=True))
     c1_0 = lrelu(
         conv2d(c0_1,
                128,
                3,
                3,
                1,
                1,
                with_sn=self.with_sn,
                with_learnable_sn_scale=self.with_learnable_sn_scale,
                update_collection=update_collection,
                stddev=0.02,
                name=self.prefix + 'c1_0',
                data_format=self.format,
                with_singular_values=True))
     c1_1 = lrelu(
         conv2d(c1_0,
                256,
                4,
                4,
                2,
                2,
                with_sn=self.with_sn,
                with_learnable_sn_scale=self.with_learnable_sn_scale,
                update_collection=update_collection,
                stddev=0.02,
                name=self.prefix + 'c1_1',
                data_format=self.format,
                with_singular_values=True))
     c2_0 = lrelu(
         conv2d(c1_1,
                256,
                3,
                3,
                1,
                1,
                with_sn=self.with_sn,
                with_learnable_sn_scale=self.with_learnable_sn_scale,
                update_collection=update_collection,
                stddev=0.02,
                name=self.prefix + 'c2_0',
                data_format=self.format,
                with_singular_values=True))
     c2_1 = lrelu(
         conv2d(c2_0,
                512,
                4,
                4,
                2,
                2,
                with_sn=self.with_sn,
                with_learnable_sn_scale=self.with_learnable_sn_scale,
                update_collection=update_collection,
                stddev=0.02,
                name=self.prefix + 'c2_1',
                data_format=self.format,
                with_singular_values=True))
     c3_0 = lrelu(
         conv2d(c2_1,
                512,
                3,
                3,
                1,
                1,
                with_sn=self.with_sn,
                with_learnable_sn_scale=self.with_learnable_sn_scale,
                update_collection=update_collection,
                stddev=0.02,
                name=self.prefix + 'c3_0',
                data_format=self.format,
                with_singular_values=True))
     c3_0 = tf.reshape(c3_0, [batch_size, -1])
     l4 = linear(c3_0,
                 self.o_dim,
                 with_sn=self.with_sn,
                 with_learnable_sn_scale=self.with_learnable_sn_scale,
                 update_collection=update_collection,
                 stddev=0.02,
                 name=self.prefix + 'l4')
     return {
         'h0': c0_0,
         'h1': c0_1,
         'h2': c1_0,
         'h3': c1_1,
         'h4': c2_0,
         'h5': c2_1,
         'h6': c3_0,
         'hF': l4
     }