if lmdb is None:
    n.data = L.Input(input_param={'shape': {'dim': [1, 3, 224, 224]}})
else:
    n.data, n.label = L.Data(batch_size=batch_size, backend=P.Data.LMDB,
        source=lmdb, ntop=2, transform_param=dict(scale=1.0 / 255))
n.conv1 = L.Convolution(n.data, kernel_size=6, num_output=48, weight_filler
    =dict(type='xavier'))
n.pool1 = L.Pooling(n.conv1, kernel_size=2, stride=2, pool=P.Pooling.MAX)
n.conv2 = L.Convolution(n.pool1, kernel_size=5, num_output=48,
    weight_filler=dict(type='xavier'))
n.pool2 = L.Pooling(n.conv2, kernel_size=2, stride=2, pool=P.Pooling.MAX)
n.conv3 = L.Convolution(n.pool2, kernel_size=4, num_output=48,
    weight_filler=dict(type='xavier'))
n.pool3 = L.Pooling(n.conv3, kernel_size=2, stride=2, pool=P.Pooling.MAX)
n.conv4 = L.Convolution(n.pool3, kernel_size=2, num_output=48,
    weight_filler=dict(type='xavier'))
n.pool4 = L.Pooling(n.conv4, kernel_size=2, stride=2, pool=P.Pooling.MAX)
n.fc1 = L.InnerProduct(n.pool4, num_output=50, weight_filler=dict(type=
    'xavier'))
n.drop1 = L.Dropout(n.fc1, dropout_param=dict(dropout_ratio=0.5))
n.score = L.InnerProduct(n.drop1, num_output=2, weight_filler=dict(type=
    'xavier'))
if lmdb is None:
    n.prob = L.SoftMax(n.score)
else:
    n.loss = L.SoftmaxWithLoss(n.score, n.label)
return n.to_proto()
How to programmatically generate deploy.txt for caffe in python