human
I wrote the below code

    def _repeat(x, n_repeats):
        with tf.variable_scope('_repeat'):
            rep = tf.transpose(tf.expand_dims(tf.ones(shape=tf.stack([n_repeats])), 1), [1, 0])
            rep = tf.to_int32(rep)
            x = tf.matmul(tf.reshape(x, ((-1), 1)), rep)
            return tf.reshape(x, [(-1)])
    def _interpolate(im, x, y, z, out_size):
        'Bilinear    interploation    layer.\n\n                Args:\n                        im:    A    5D    tensor    of    size    [num_batch,    depth,    height,    width,    num_channels].\n                                It    is    the    input    volume    for    the    transformation    layer    (tf.float32).\n                        x:    A    tensor    of    size    [num_batch,    out_depth,    out_height,    out_width]\n                                representing    the    inverse    coordinate    mapping    for    x    (tf.float32).\n                        y:    A    tensor    of    size    [num_batch,    out_depth,    out_height,    out_width]\n                                representing    the    inverse    coordinate    mapping    for    y    (tf.float32).\n                        z:    A    tensor    of    size    [num_batch,    out_depth,    out_height,    out_width]\n                                representing    the    inverse    coordinate    mapping    for    z    (tf.float32).\n                        out_size:    A    tuple    representing    the    output    size    of    transformation    layer\n                                (float).\n\n                Returns:\n                        A    transformed    tensor    (tf.float32).\n\n                '
        with tf.variable_scope('_interpolate'):
            num_batch = im.get_shape().as_list()[0]
            depth = im.get_shape().as_list()[1]
            height = im.get_shape().as_list()[2]
            width = im.get_shape().as_list()[3]
            channels = im.get_shape().as_list()[4]
            x = tf.to_float(x)
            y = tf.to_float(y)
            z = tf.to_float(z)
 ...

What's a good function header?

Here's a good function header?
assistant
#Here's a good function header.

def transformer(voxels, theta, out_size, z_near, z_far, name='PerspectiveTransformer'):