human
I wrote the below code

    _maybe_download_cifar10(path)
    if (mode == 'train'):
        filenames = [os.path.join(path, CIFAR10_FOLDER, 'data_batch_{}.bin'.format(i)) for i in xrange(1, 6)]
    elif (mode == 'test'):
        filenames = [os.path.join(path, 'test_batch.bin')]
    else:
        raise ValueError('Mode    {}    not    recognised'.format(mode))
    depth = 3
    height = 32
    width = 32
    label_bytes = 1
    image_bytes = ((depth * height) * width)
    record_bytes = (label_bytes + image_bytes)
    reader = tf.FixedLengthRecordReader(record_bytes=record_bytes)
    (_, record) = reader.read(tf.train.string_input_producer(filenames))
    record_bytes = tf.decode_raw(record, tf.uint8)
    label = tf.cast(tf.slice(record_bytes, [0], [label_bytes]), tf.int32)
    raw_image = tf.slice(record_bytes, [label_bytes], [image_bytes])
    image = tf.cast(tf.reshape(raw_image, [depth, height, width]), tf.float32)
    image = tf.transpose(image, [1, 2, 0])
    image = tf.div(image, 255)
    queue = tf.RandomShuffleQueue(capacity=(min_queue_examples + (3 * batch_size)), min_after_dequeue=min_queue_examples, dtypes=[tf.float32, tf.int32], shapes=[image.get_shape(), label.get_shape()])
    enqueue_ops = [queue.enqueue([image, label]) for _ in xrange(num_threads)]
    tf.train.add_queue_runner(tf.train.QueueRunner(queue, enqueue_ops))
    def _conv_activation(x):
        return tf.nn.max_pool(tf.nn.relu(x), ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME')
    conv = snt.nets.ConvNet2D(output_channels=conv_channels, kernel_shapes=[5], strides=[1], paddings=[snt.SAME], activation=_conv_activation, activate_final=True, initializers=_nn_initializers, use_batch_norm=batch_norm)
    if batch_norm:
        linear_activation = (lambda x: tf.nn.relu(snt.BatchNorm()(x)))
    else:
        linear_activation = tf.nn.relu
    mlp = snt.nets.MLP((list(linear_layers) + [10]), activation=linear_activation, initializers=_nn_initializers)
    network = snt.Sequential([conv, snt.BatchFlatten(), mlp])
    def build():
        (image_batch,...

What's a good function header?

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

def cifar10(path, conv_channels=None, linear_layers=None, batch_norm=True, batch_size=128, num_threads=4, min_queue_examples=1000, mode='train'):