You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@singa.apache.org by wa...@apache.org on 2015/06/15 08:42:37 UTC

[09/10] incubator-singa git commit: SINGA-7 Implement shared memory Hogwild algorithm

SINGA-7 Implement shared memory Hogwild algorithm

add .conf files


Project: http://git-wip-us.apache.org/repos/asf/incubator-singa/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-singa/commit/bd87c7a5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-singa/tree/bd87c7a5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-singa/diff/bd87c7a5

Branch: refs/heads/master
Commit: bd87c7a50d8cc1888a09df90376660b8a4acf745
Parents: bfc09c1
Author: wang sheng <wa...@gmail.com>
Authored: Mon Jun 15 14:40:43 2015 +0800
Committer: wang sheng <wa...@gmail.com>
Committed: Mon Jun 15 14:40:43 2015 +0800

----------------------------------------------------------------------
 examples/cifar10/cluster.conf        |   6 +
 examples/cifar10/model-lmdb.conf     | 218 +++++++++++++++++++++++++++
 examples/cifar10/model-prefetch.conf | 241 ++++++++++++++++++++++++++++++
 examples/cifar10/model.conf          | 218 +++++++++++++++++++++++++++
 examples/mnist/cluster.conf          |   5 +
 examples/mnist/conv.conf             | 175 ++++++++++++++++++++++
 examples/mnist/mlp-lmdb.conf         | 223 +++++++++++++++++++++++++++
 examples/mnist/mlp.conf              | 221 +++++++++++++++++++++++++++
 8 files changed, 1307 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/bd87c7a5/examples/cifar10/cluster.conf
----------------------------------------------------------------------
diff --git a/examples/cifar10/cluster.conf b/examples/cifar10/cluster.conf
new file mode 100644
index 0000000..6f6d963
--- /dev/null
+++ b/examples/cifar10/cluster.conf
@@ -0,0 +1,6 @@
+nworker_groups: 2
+nserver_groups: 1
+nservers_per_group: 1
+nworkers_per_group: 1
+nworkers_per_procs: 2
+workspace: "examples/cifar10/"

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/bd87c7a5/examples/cifar10/model-lmdb.conf
----------------------------------------------------------------------
diff --git a/examples/cifar10/model-lmdb.conf b/examples/cifar10/model-lmdb.conf
new file mode 100644
index 0000000..ea22ccd
--- /dev/null
+++ b/examples/cifar10/model-lmdb.conf
@@ -0,0 +1,218 @@
+name: "cifar10-convnet"
+train_steps: 70000
+test_steps:100
+test_frequency:1000
+display_frequency:50
+updater{
+  momentum:0.9
+  weight_decay:0.004
+  learning_rate_change_method:kFixedStep
+  step:0
+  step:60000
+  step:65000
+  step_lr:0.001
+  step_lr:0.0001
+  step_lr:0.00001
+}
+neuralnet {
+layer {
+  name: "data"
+  type: "kLMDBData"
+  data_param {
+    path: "examples/cifar10/cifar10_train_lmdb"
+    batchsize: 100
+  }
+  exclude: kTest
+}
+
+layer {
+  name: "data"
+  type: "kLMDBData"
+  data_param {
+    path: "examples/cifar10/cifar10_test_lmdb"
+    batchsize: 100
+  }
+  exclude: kTrain
+}
+
+layer{
+  name:"rgb"
+  type: "kRGBImage"
+  srclayers: "data"
+  rgbimage_param {
+    meanfile: "examples/cifar10/mean.binaryproto"
+  }
+}
+
+layer{
+  name: "label"
+  type: "kLabel"
+  srclayers: "data"
+}
+layer {
+  name: "conv1"
+  type: "kConvolution"
+  srclayers: "rgb"
+  convolution_param {
+    num_filters: 32
+    kernel: 5
+    stride: 1
+    pad:2
+  }
+  param{
+      name: "weight"
+      init_method:kGaussian
+      std:0.0001
+      learning_rate_multiplier:1.0
+    }
+  param{
+      name: "bias"
+      init_method: kConstant
+      learning_rate_multiplier:2.0
+      value:0
+    }
+}
+layer {
+  name: "pool1"
+  type: "kPooling"
+  srclayers: "conv1"
+  pooling_param {
+    pool: MAX
+    kernel: 3
+    stride: 2
+  }
+}
+layer {
+  name: "relu1"
+  type: "kReLU"
+  srclayers:"pool1"
+}
+layer {
+  name: "norm1"
+  type: "kLRN"
+  lrn_param {
+    norm_region: WITHIN_CHANNEL
+    local_size: 3
+    alpha: 5e-05
+    beta: 0.75
+  }
+  srclayers:"relu1"
+}
+layer {
+  name: "conv2"
+  type: "kConvolution"
+  srclayers: "norm1"
+  convolution_param {
+    num_filters: 32
+    kernel: 5
+    stride: 1
+    pad:2
+  }
+  param{
+      name: "weight"
+      init_method:kGaussian
+      std:0.01
+      learning_rate_multiplier:1.0
+    }
+  param{
+      name: "bias"
+      init_method: kConstant
+      learning_rate_multiplier:2.0
+      value:0
+    }
+}
+layer {
+  name: "relu2"
+  type: "kReLU"
+  srclayers:"conv2"
+}
+layer {
+  name: "pool2"
+  type: "kPooling"
+  srclayers: "relu2"
+  pooling_param {
+    pool: MAX
+    kernel: 3
+    stride: 2
+  }
+}
+layer {
+  name: "norm2"
+  type: "kLRN"
+  lrn_param {
+    norm_region: WITHIN_CHANNEL
+    local_size: 3
+    alpha: 5e-05
+    beta: 0.75
+  }
+  srclayers:"pool2"
+}
+layer {
+  name: "conv3"
+  type: "kConvolution"
+  srclayers: "norm2"
+  convolution_param {
+    num_filters: 64
+    kernel: 5
+    stride: 1
+    pad:2
+  }
+  param{
+      name: "weight"
+      init_method:kGaussian
+      std:0.01
+    }
+  param{
+      name: "bias"
+      init_method: kConstant
+      value:0
+    }
+}
+layer {
+  name: "relu3"
+  type: "kReLU"
+  srclayers:"conv3"
+}
+layer {
+  name: "pool3"
+  type: "kPooling"
+  srclayers: "relu3"
+  pooling_param {
+    pool: AVE
+    kernel: 3
+    stride: 2
+  }
+}
+layer {
+  name: "ip1"
+  type: "kInnerProduct"
+  srclayers:"pool3"
+  inner_product_param {
+    num_output: 10
+  }
+  param{
+      name: "weight"
+      init_method:kGaussian
+      std:0.01
+      learning_rate_multiplier:1.0
+      weight_decay_multiplier:250
+    }
+  param{
+      name: "bias"
+      init_method: kConstant
+      learning_rate_multiplier:2.0
+      weight_decay_multiplier:0
+      value:0
+  }
+}
+
+layer{
+  name: "loss"
+  type:"kSoftmaxLoss"
+  softmaxloss_param{
+    topk:1
+  }
+  srclayers:"ip1"
+  srclayers:"label"
+}
+}

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/bd87c7a5/examples/cifar10/model-prefetch.conf
----------------------------------------------------------------------
diff --git a/examples/cifar10/model-prefetch.conf b/examples/cifar10/model-prefetch.conf
new file mode 100644
index 0000000..220a4b9
--- /dev/null
+++ b/examples/cifar10/model-prefetch.conf
@@ -0,0 +1,241 @@
+name: "cifar10-convnet"
+train_steps: 70000
+test_steps:100
+test_frequency:1000
+display_frequency:50
+updater{
+  momentum:0.9
+  weight_decay:0.004
+  learning_rate_change_method:kFixedStep
+  step:0
+  step:60000
+  step:65000
+  step_lr:0.001
+  step_lr:0.0001
+  step_lr:0.00001
+}
+neuralnet {
+layer{
+  name: "prefetch"
+  type: "kPrefetch"
+  sublayers {
+    name: "data"
+    type: "kShardData"
+    data_param {
+      path: "examples/cifar10/cifar10_train_shard"
+      batchsize: 100
+    }
+  }
+  sublayers{
+    name:"rgb"
+    type: "kRGBImage"
+    srclayers: "data"
+    rgbimage_param {
+      meanfile: "examples/cifar10/image_mean.bin"
+    }
+  }
+  sublayers{
+    name: "label"
+    type: "kLabel"
+    srclayers: "data"
+  }
+  exclude: kTest
+}
+
+layer{
+  name: "prefetch"
+  type: "kPrefetch"
+  sublayers {
+    name: "data"
+    type: "kShardData"
+    data_param {
+      path: "examples/cifar10/cifar10_test_shard"
+      batchsize: 100
+    }
+  }
+  sublayers{
+    name:"rgb"
+    type: "kRGBImage"
+    srclayers: "data"
+    rgbimage_param {
+      meanfile: "examples/cifar10/image_mean.bin"
+    }
+  }
+  sublayers{
+    name: "label"
+    type: "kLabel"
+    srclayers: "data"
+  }
+  exclude: kTrain
+}
+
+layer {
+  name: "conv1"
+  type: "kConvolution"
+  srclayers: "prefetch"
+  datablob: "rgb"
+  convolution_param {
+    num_filters: 32
+    kernel: 5
+    stride: 1
+    pad:2
+  }
+  param{
+      name: "weight"
+      init_method:kGaussian
+      std:0.0001
+      learning_rate_multiplier:1.0
+    }
+  param{
+      name: "bias"
+      init_method: kConstant
+      learning_rate_multiplier:2.0
+      value:0
+    }
+}
+
+layer {
+  name: "pool1"
+  type: "kPooling"
+  srclayers: "conv1"
+  pooling_param {
+    pool: MAX
+    kernel: 3
+    stride: 2
+  }
+}
+layer {
+  name: "relu1"
+  type: "kReLU"
+  srclayers:"pool1"
+}
+layer {
+  name: "norm1"
+  type: "kLRN"
+  lrn_param {
+    norm_region: WITHIN_CHANNEL
+    local_size: 3
+    alpha: 5e-05
+    beta: 0.75
+  }
+  srclayers:"relu1"
+}
+layer {
+  name: "conv2"
+  type: "kConvolution"
+  srclayers: "norm1"
+  convolution_param {
+    num_filters: 32
+    kernel: 5
+    stride: 1
+    pad:2
+  }
+  param{
+      name: "weight"
+      init_method:kGaussian
+      std:0.01
+      learning_rate_multiplier:1.0
+    }
+  param{
+      name: "bias"
+      init_method: kConstant
+      learning_rate_multiplier:2.0
+      value:0
+    }
+}
+layer {
+  name: "relu2"
+  type: "kReLU"
+  srclayers:"conv2"
+}
+layer {
+  name: "pool2"
+  type: "kPooling"
+  srclayers: "relu2"
+  pooling_param {
+    pool: MAX
+    kernel: 3
+    stride: 2
+  }
+}
+layer {
+  name: "norm2"
+  type: "kLRN"
+  lrn_param {
+    norm_region: WITHIN_CHANNEL
+    local_size: 3
+    alpha: 5e-05
+    beta: 0.75
+  }
+  srclayers:"pool2"
+}
+layer {
+  name: "conv3"
+  type: "kConvolution"
+  srclayers: "norm2"
+  convolution_param {
+    num_filters: 64
+    kernel: 5
+    stride: 1
+    pad:2
+  }
+  param{
+      name: "weight"
+      init_method:kGaussian
+      std:0.01
+    }
+  param{
+      name: "bias"
+      init_method: kConstant
+      value:0
+    }
+}
+layer {
+  name: "relu3"
+  type: "kReLU"
+  srclayers:"conv3"
+}
+layer {
+  name: "pool3"
+  type: "kPooling"
+  srclayers: "relu3"
+  pooling_param {
+    pool: AVE
+    kernel: 3
+    stride: 2
+  }
+}
+layer {
+  name: "ip1"
+  type: "kInnerProduct"
+  srclayers:"pool3"
+  inner_product_param {
+    num_output: 10
+  }
+  param{
+      name: "weight"
+      init_method:kGaussian
+      std:0.01
+      learning_rate_multiplier:1.0
+      weight_decay_multiplier:250
+    }
+  param{
+      name: "bias"
+      init_method: kConstant
+      learning_rate_multiplier:2.0
+      weight_decay_multiplier:0
+      value:0
+  }
+}
+
+layer{
+  name: "loss"
+  type:"kSoftmaxLoss"
+  softmaxloss_param{
+    topk:1
+  }
+  srclayers:"ip1"
+  srclayers:"prefetch"
+  datablob: "label"
+}
+}

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/bd87c7a5/examples/cifar10/model.conf
----------------------------------------------------------------------
diff --git a/examples/cifar10/model.conf b/examples/cifar10/model.conf
new file mode 100644
index 0000000..0cdf8b0
--- /dev/null
+++ b/examples/cifar10/model.conf
@@ -0,0 +1,218 @@
+name: "cifar10-convnet"
+train_steps: 1000
+test_steps:100
+test_frequency:300
+display_frequency:30
+updater{
+  momentum:0.0
+  weight_decay:0.004
+  learning_rate_change_method:kFixedStep
+  step:0
+  step:60000
+  step:65000
+  step_lr:0.001
+  step_lr:0.0001
+  step_lr:0.00001
+}
+neuralnet {
+partition_type: kDataPartition
+layer{
+  name: "data"
+  type: "kShardData"
+  data_param {
+    path: "examples/cifar10/cifar10_train_shard"
+    batchsize: 16
+  }
+  exclude: kTest
+}
+layer{
+  name: "data"
+  type: "kShardData"
+  data_param {
+    path: "examples/cifar10/cifar10_test_shard"
+    batchsize: 100
+  }
+  exclude: kTrain
+}
+layer{
+  name:"rgb"
+  type: "kRGBImage"
+  srclayers: "data"
+  rgbimage_param {
+    meanfile: "examples/cifar10/image_mean.bin"
+  }
+}
+layer{
+  name: "label"
+  type: "kLabel"
+  srclayers: "data"
+}
+
+layer {
+  name: "conv1"
+  type: "kConvolution"
+  srclayers: "rgb"
+  convolution_param {
+    num_filters: 32
+    kernel: 5
+    stride: 1
+    pad:2
+  }
+  param{
+      name: "weight"
+      init_method:kGaussian
+      std:0.0001
+      learning_rate_multiplier:1.0
+    }
+  param{
+      name: "bias"
+      init_method: kConstant
+      learning_rate_multiplier:2.0
+      value:0
+    }
+}
+
+layer {
+  name: "pool1"
+  type: "kPooling"
+  srclayers: "conv1"
+  pooling_param {
+    pool: MAX
+    kernel: 3
+    stride: 2
+  }
+}
+layer {
+  name: "relu1"
+  type: "kReLU"
+  srclayers:"pool1"
+}
+layer {
+  name: "norm1"
+  type: "kLRN"
+  lrn_param {
+    norm_region: WITHIN_CHANNEL
+    local_size: 3
+    alpha: 5e-05
+    beta: 0.75
+  }
+  srclayers:"relu1"
+}
+layer {
+  name: "conv2"
+  type: "kConvolution"
+  srclayers: "norm1"
+  convolution_param {
+    num_filters: 32
+    kernel: 5
+    stride: 1
+    pad:2
+  }
+  param{
+      name: "weight"
+      init_method:kGaussian
+      std:0.01
+      learning_rate_multiplier:1.0
+    }
+  param{
+      name: "bias"
+      init_method: kConstant
+      learning_rate_multiplier:2.0
+      value:0
+    }
+}
+layer {
+  name: "relu2"
+  type: "kReLU"
+  srclayers:"conv2"
+}
+layer {
+  name: "pool2"
+  type: "kPooling"
+  srclayers: "relu2"
+  pooling_param {
+    pool: MAX
+    kernel: 3
+    stride: 2
+  }
+}
+layer {
+  name: "norm2"
+  type: "kLRN"
+  lrn_param {
+    norm_region: WITHIN_CHANNEL
+    local_size: 3
+    alpha: 5e-05
+    beta: 0.75
+  }
+  srclayers:"pool2"
+}
+layer {
+  name: "conv3"
+  type: "kConvolution"
+  srclayers: "norm2"
+  convolution_param {
+    num_filters: 64
+    kernel: 5
+    stride: 1
+    pad:2
+  }
+  param{
+      name: "weight"
+      init_method:kGaussian
+      std:0.01
+    }
+  param{
+      name: "bias"
+      init_method: kConstant
+      value:0
+    }
+}
+layer {
+  name: "relu3"
+  type: "kReLU"
+  srclayers:"conv3"
+}
+layer {
+  name: "pool3"
+  type: "kPooling"
+  srclayers: "relu3"
+  pooling_param {
+    pool: AVE
+    kernel: 3
+    stride: 2
+  }
+}
+layer {
+  name: "ip1"
+  type: "kInnerProduct"
+  srclayers:"pool3"
+  inner_product_param {
+    num_output: 10
+  }
+  param{
+      name: "weight"
+      init_method:kGaussian
+      std:0.01
+      learning_rate_multiplier:1.0
+      weight_decay_multiplier:250
+    }
+  param{
+      name: "bias"
+      init_method: kConstant
+      learning_rate_multiplier:2.0
+      weight_decay_multiplier:0
+      value:0
+  }
+}
+
+layer{
+  name: "loss"
+  type:"kSoftmaxLoss"
+  softmaxloss_param{
+    topk:1
+  }
+  srclayers:"ip1"
+  srclayers: "label"
+}
+}

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/bd87c7a5/examples/mnist/cluster.conf
----------------------------------------------------------------------
diff --git a/examples/mnist/cluster.conf b/examples/mnist/cluster.conf
new file mode 100644
index 0000000..6b8a8e6
--- /dev/null
+++ b/examples/mnist/cluster.conf
@@ -0,0 +1,5 @@
+nworker_groups: 1
+nserver_groups: 1
+nservers_per_group: 1
+nworkers_per_group: 1
+workspace: "examples/cifar10/"

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/bd87c7a5/examples/mnist/conv.conf
----------------------------------------------------------------------
diff --git a/examples/mnist/conv.conf b/examples/mnist/conv.conf
new file mode 100644
index 0000000..5f3bf58
--- /dev/null
+++ b/examples/mnist/conv.conf
@@ -0,0 +1,175 @@
+name: "mnist-conv"
+train_steps: 10000
+test_steps:100
+test_frequency:500
+display_frequency:50
+debug: false
+updater{
+  base_learning_rate:0.01
+  momentum:0.9
+  weight_decay:0.0005
+  gamma:0.0001
+  pow:0.75
+  learning_rate_change_method:kInverse
+}
+neuralnet {
+layer {
+  name: "data"
+  type: "kLMDBData"
+  data_param {
+    path: "/home/wangwei/program/singa/examples/mnist/mnist_train_lmdb"
+    batchsize: 64
+  }
+  exclude: kTest
+}
+
+layer {
+  name: "data"
+  type: "kLMDBData"
+  data_param {
+    path: "/home/wangwei/program/singa/examples/mnist/mnist_test_lmdb"
+    batchsize: 100
+  }
+  exclude: kTrain
+}
+
+layer{
+  name:"mnist"
+  type: "kMnistImage"
+  srclayers: "data"
+  mnist_param {
+#    sigma: 6
+#    alpha: 38
+#    gamma: 15
+#    kernel: 21
+#    elastic_freq:100
+#    beta:15
+#    resize: 29
+    norm_a:255
+  }
+}
+
+
+layer{
+  name: "label"
+  type: "kLabel"
+  srclayers: "data"
+}
+layer {
+  name: "conv1"
+  type: "kConvolution"
+  srclayers: "mnist"
+  convolution_param {
+    num_filters: 20
+    kernel: 5
+    stride: 1
+  }
+  param{
+      name: "weight"
+      init_method:kUniformSqrtFanIn
+      learning_rate_multiplier:1.0
+    }
+  param{
+      name: "bias"
+      init_method: kConstant
+      learning_rate_multiplier:2.0
+      value:0
+    }
+}
+layer {
+  name: "pool1"
+  type: "kPooling"
+  srclayers: "conv1"
+  pooling_param {
+    pool: MAX
+    kernel: 2
+    stride: 2
+  }
+}
+layer {
+  name: "conv2"
+  type: "kConvolution"
+  srclayers: "pool1"
+  convolution_param {
+    num_filters: 50
+    kernel: 5
+    stride: 1
+  }
+  param{
+      name: "weight"
+      init_method:kUniformSqrtFanIn
+      learning_rate_multiplier:1.0
+    }
+  param{
+      name: "bias"
+      init_method: kConstant
+      learning_rate_multiplier:2.0
+      value:0
+    }
+}
+layer {
+  name: "pool2"
+  type: "kPooling"
+  srclayers: "conv2"
+  pooling_param {
+    pool: MAX
+    kernel: 2
+    stride: 2
+  }
+}
+layer {
+  name: "ip1"
+  type: "kInnerProduct"
+  srclayers:"pool2"
+  inner_product_param {
+    num_output: 500
+  }
+  param{
+      name: "weight"
+      init_method:kUniformSqrtFanIn
+      learning_rate_multiplier:1.0
+    }
+  param{
+      name: "bias"
+      init_method: kConstant
+      learning_rate_multiplier:2.0
+      value:0
+  }
+
+}
+
+layer {
+  name: "relu1"
+  type: "kReLU"
+  srclayers:"ip1"
+}
+
+layer {
+  name: "ip2"
+  type: "kInnerProduct"
+  srclayers:"relu1"
+  inner_product_param {
+    num_output: 10
+  }
+  param{
+      name: "weight"
+      init_method:kUniformSqrtFanIn
+      learning_rate_multiplier:1
+    }
+  param{
+      name: "bias"
+      init_method: kConstant
+      learning_rate_multiplier:2
+      value:0
+    }
+}
+layer{
+  name: "loss"
+  type:"kSoftmaxLoss"
+  softmaxloss_param{
+    topk:1
+  }
+  srclayers:"ip2"
+  srclayers:"label"
+}
+}

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/bd87c7a5/examples/mnist/mlp-lmdb.conf
----------------------------------------------------------------------
diff --git a/examples/mnist/mlp-lmdb.conf b/examples/mnist/mlp-lmdb.conf
new file mode 100644
index 0000000..d0ed08f
--- /dev/null
+++ b/examples/mnist/mlp-lmdb.conf
@@ -0,0 +1,223 @@
+name: "deep-big-simple-mlp"
+train_steps: 10000
+test_steps:10
+test_frequency:60
+display_frequency:30
+checkpoint_frequency:120
+updater{
+  base_learning_rate: 0.001
+  learning_rate_change_method: kStep
+  learning_rate_change_frequency: 60
+  gamma: 0.997
+  param_type: "Param"
+}
+
+neuralnet {
+layer {
+  name: "data"
+  type: "kLMDBData"
+  data_param {
+    path: "/home/wangwei/program/singa/examples/mnist/mnist_train_lmdb"
+    batchsize: 1000
+    random_skip: 10000
+  }
+  exclude: kTest
+}
+
+layer {
+  name: "data"
+  type: "kLMDBData"
+  data_param {
+    path: "/home/wangwei/program/singa/examples/mnist/mnist_test_lmdb"
+    batchsize: 1000
+  }
+  exclude: kTrain
+}
+
+layer{
+  name:"mnist"
+  type: "kMnistImage"
+  srclayers: "data"
+  mnist_param {
+#    sigma: 6
+#    alpha: 38
+#    gamma: 15
+#    kernel: 21
+#    elastic_freq:100
+#    beta:15
+#    resize: 29
+    norm_a: 127.5
+    norm_b: 1
+  }
+}
+
+
+layer{
+  name: "label"
+  type: "kLabel"
+  srclayers: "data"
+}
+
+layer{
+  name: "fc1"
+  type: "kInnerProduct"
+  srclayers:"mnist"
+  inner_product_param{
+    num_output: 2500
+  }
+  param{
+    name: "weight"
+    init_method: kUniform
+    low:-0.05
+    high:0.05
+  }
+  param{
+    name: "bias"
+    init_method: kUniform
+    low: -0.05
+    high:0.05
+  }
+}
+
+layer{
+  name: "tanh1"
+  type:"kTanh"
+  srclayers:"fc1"
+}
+layer{
+  name: "fc2"
+  type: "kInnerProduct"
+  srclayers:"tanh1"
+  inner_product_param{
+    num_output: 2000
+  }
+  param{
+    name: "weight"
+    init_method: kUniform
+    low:-0.05
+    high:0.05
+  }
+  param{
+    name: "bias"
+    init_method: kUniform
+    low: -0.05
+    high:0.05
+  }
+}
+
+layer{
+  name: "tanh2"
+  type:"kTanh"
+  srclayers:"fc2"
+}
+layer{
+  name: "fc3"
+  type: "kInnerProduct"
+  srclayers:"tanh2"
+  inner_product_param{
+    num_output: 1500
+  }
+  param{
+    name: "weight"
+    init_method: kUniform
+    low:-0.05
+    high:0.05
+  }
+  param{
+    name: "bias"
+    init_method: kUniform
+    low: -0.05
+    high:0.05
+  }
+
+}
+
+layer{
+  name: "tanh3"
+  type:"kTanh"
+  srclayers:"fc3"
+}
+layer{
+  name: "fc4"
+  type: "kInnerProduct"
+  srclayers:"tanh3"
+  inner_product_param{
+    num_output: 1000
+  }
+  param{
+    name: "weight"
+    init_method: kUniform
+    low:-0.05
+    high:0.05
+  }
+  param{
+    name: "bias"
+    init_method: kUniform
+    low: -0.05
+    high:0.05
+  }
+
+}
+
+layer{
+  name: "tanh4"
+  type:"kTanh"
+  srclayers:"fc4"
+}
+layer{
+  name: "fc5"
+  type: "kInnerProduct"
+  srclayers:"tanh4"
+  inner_product_param{
+    num_output: 500
+  }
+  param{
+    name: "weight"
+    init_method: kUniform
+    low:-0.05
+    high:0.05
+  }
+  param{
+    name: "bias"
+    init_method: kUniform
+    low: -0.05
+    high:0.05
+  }
+
+}
+
+layer{
+  name: "tanh5"
+  type:"kTanh"
+  srclayers:"fc5"
+}
+layer{
+  name: "fc6"
+  type: "kInnerProduct"
+  srclayers:"tanh5"
+  inner_product_param{
+    num_output: 10
+  }
+  param{
+    name: "weight"
+    init_method: kUniform
+    low:-0.05
+    high:0.05
+  }
+  param{
+    name: "bias"
+    init_method: kUniform
+    low: -0.05
+    high:0.05
+  }
+}
+layer{
+  name: "loss"
+  type:"kSoftmaxLoss"
+  softmaxloss_param{
+    topk:1
+  }
+  srclayers:"fc6"
+  srclayers:"label"
+}
+}

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/bd87c7a5/examples/mnist/mlp.conf
----------------------------------------------------------------------
diff --git a/examples/mnist/mlp.conf b/examples/mnist/mlp.conf
new file mode 100644
index 0000000..9eeb1c6
--- /dev/null
+++ b/examples/mnist/mlp.conf
@@ -0,0 +1,221 @@
+name: "deep-big-simple-mlp"
+train_steps: 10000
+test_steps:10
+test_frequency:60
+display_frequency:30
+updater{
+  base_learning_rate: 0.001
+  learning_rate_change_method: kStep
+  learning_rate_change_frequency: 60
+  gamma: 0.997
+  param_type: "Param"
+}
+
+neuralnet {
+layer {
+  name: "data"
+  type: "kShardData"
+  data_param {
+    path: "examples/mnist/mnist_train_shard"
+    batchsize: 1000
+  }
+  exclude: kTest
+}
+
+layer {
+  name: "data"
+  type: "kShardData"
+  data_param {
+    path: "examples/mnist/mnist_test_shard"
+    batchsize: 1000
+  }
+  exclude: kTrain
+}
+
+layer{
+  name:"mnist"
+  type: "kMnistImage"
+  srclayers: "data"
+  mnist_param {
+#    sigma: 6
+#    alpha: 38
+#    gamma: 15
+#    kernel: 21
+#    elastic_freq:100
+#    beta:15
+#    resize: 29
+    norm_a: 127.5
+    norm_b: 1
+  }
+}
+
+
+layer{
+  name: "label"
+  type: "kLabel"
+  srclayers: "data"
+}
+
+layer{
+  name: "fc1"
+  type: "kInnerProduct"
+  srclayers:"mnist"
+  inner_product_param{
+    num_output: 2500
+  }
+  param{
+    name: "weight"
+    init_method: kUniform
+    low:-0.05
+    high:0.05
+  }
+  param{
+    name: "bias"
+    init_method: kUniform
+    low: -0.05
+    high:0.05
+  }
+}
+
+layer{
+  name: "tanh1"
+  type:"kTanh"
+  srclayers:"fc1"
+}
+layer{
+  name: "fc2"
+  type: "kInnerProduct"
+  srclayers:"tanh1"
+  inner_product_param{
+    num_output: 2000
+  }
+  param{
+    name: "weight"
+    init_method: kUniform
+    low:-0.05
+    high:0.05
+  }
+  param{
+    name: "bias"
+    init_method: kUniform
+    low: -0.05
+    high:0.05
+  }
+}
+
+layer{
+  name: "tanh2"
+  type:"kTanh"
+  srclayers:"fc2"
+}
+layer{
+  name: "fc3"
+  type: "kInnerProduct"
+  srclayers:"tanh2"
+  inner_product_param{
+    num_output: 1500
+  }
+  param{
+    name: "weight"
+    init_method: kUniform
+    low:-0.05
+    high:0.05
+  }
+  param{
+    name: "bias"
+    init_method: kUniform
+    low: -0.05
+    high:0.05
+  }
+
+}
+
+layer{
+  name: "tanh3"
+  type:"kTanh"
+  srclayers:"fc3"
+}
+layer{
+  name: "fc4"
+  type: "kInnerProduct"
+  srclayers:"tanh3"
+  inner_product_param{
+    num_output: 1000
+  }
+  param{
+    name: "weight"
+    init_method: kUniform
+    low:-0.05
+    high:0.05
+  }
+  param{
+    name: "bias"
+    init_method: kUniform
+    low: -0.05
+    high:0.05
+  }
+
+}
+
+layer{
+  name: "tanh4"
+  type:"kTanh"
+  srclayers:"fc4"
+}
+layer{
+  name: "fc5"
+  type: "kInnerProduct"
+  srclayers:"tanh4"
+  inner_product_param{
+    num_output: 500
+  }
+  param{
+    name: "weight"
+    init_method: kUniform
+    low:-0.05
+    high:0.05
+  }
+  param{
+    name: "bias"
+    init_method: kUniform
+    low: -0.05
+    high:0.05
+  }
+
+}
+
+layer{
+  name: "tanh5"
+  type:"kTanh"
+  srclayers:"fc5"
+}
+layer{
+  name: "fc6"
+  type: "kInnerProduct"
+  srclayers:"tanh5"
+  inner_product_param{
+    num_output: 10
+  }
+  param{
+    name: "weight"
+    init_method: kUniform
+    low:-0.05
+    high:0.05
+  }
+  param{
+    name: "bias"
+    init_method: kUniform
+    low: -0.05
+    high:0.05
+  }
+}
+layer{
+  name: "loss"
+  type:"kSoftmaxLoss"
+  softmaxloss_param{
+    topk:1
+  }
+  srclayers:"fc6"
+  srclayers:"label"
+}
+}