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 <[email protected]> Authored: Mon Jun 15 14:40:43 2015 +0800 Committer: wang sheng <[email protected]> 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" +} +}
