human
Here's a good function header given the following:
I wrote the below code

    if (activation == 'sigmoid'):
        activation_op = tf.sigmoid
    elif (activation == 'relu'):
        activation_op = tf.nn.relu
    else:
        raise ValueError('{}    activation    not    supported'.format(activation))
    data = mnist_dataset.load_mnist()
    data = getattr(data, mode)
    images = tf.constant(data.images, dtype=tf.float32, name='MNIST_images')
    images = tf.reshape(images, [(-1), 28, 28, 1])
    labels = tf.constant(data.labels, dtype=tf.int64, name='MNIST_labels')
    mlp = snt.nets.MLP((list(layers) + [10]), activation=activation_op, initializers=_nn_initializers)
    network = snt.Sequential([snt.BatchFlatten(), mlp])
    def build():
        indices = tf.random_uniform([batch_size], 0, data.num_examples, tf.int64)
        batch_images = tf.gather(images, indices)
        batch_labels = tf.gather(labels, indices)
        output = network(batch_images)
        return _xent_loss(output, batch_labels)
    return build

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

def mnist(layers, activation='sigmoid', batch_size=128, mode='train'):