class_docstr: ConvNet decoder for CelebA.
class_docstr_tok: ["ConvNet","decoder","for","CelebA","."]
code: def _build(self, x):
      for i, l in enumerate(self.padding_linear_layers):
          x = snt.Linear(l)(x)
      for i, l in enumerate(self.layers):
          if i == 0:
              h = snt.Linear(l[1] * l[2] * l[0])(x)
              h = tf.reshape(h, [-1, l[1], l[2], l[0]])
          elif i == len(self.layers) - 1:
              h = snt.Conv2DTranspose(l[0], None, l[1], l[2])(h)
          else:
              h = tf.nn.relu(
                  snt.Conv2DTranspose(l[0], None, l[1], l[2])(h)
              )
      logits = h
      return logits
  
imports: import numpy
  import sonnet
  import tensorflow.compat.v1
label_desc: Use image node_id 2 for calling the DecoderConv obj's underlying member method code with example usage: obj._build(x) and returns: logits