| name: "cifar10-convnet" |
| train_steps: 70000 |
| test_steps: 100 |
| test_freq: 1000 |
| #validate_steps: 100 |
| #validate_freq: 300 |
| disp_freq: 200 |
| gpu: 0 |
| #checkpoint_path: "examples/cifar10/checkpoint/step1000-worker0" |
| train_one_batch { |
| alg: kBP |
| } |
| updater{ |
| type: kSGD |
| weight_decay:0.004 |
| momentum:0.9 |
| learning_rate { |
| type: kFixedStep |
| fixedstep_conf:{ |
| step:0 |
| step:60000 |
| step:65000 |
| step_lr:0.001 |
| step_lr:0.0001 |
| step_lr:0.00001 |
| } |
| } |
| } |
| neuralnet { |
| layer{ |
| name: "data" |
| type: kRecordInput |
| store_conf { |
| backend: "kvfile" |
| path: "examples/cifar10/train_data.bin" |
| mean_file: "examples/cifar10/image_mean.bin" |
| batchsize: 100 |
| #random_skip: 5000 |
| shape: 3 |
| shape: 32 |
| shape: 32 |
| } |
| include: kTrain |
| } |
| # layer{ |
| # name: "data" |
| # type: kRecordInput |
| # store_conf { |
| # backend: "kvfile" |
| # path: "examples/cifar10/val_data.bin" |
| # mean_file: "examples/cifar10/image_mean.bin" |
| # batchsize: 64 |
| # random_skip: 5000 |
| # shape: 3 |
| # shape: 32 |
| # shape: 32 |
| # } |
| # include: kVal |
| # } |
| layer{ |
| name: "data" |
| type: kRecordInput |
| store_conf { |
| backend: "kvfile" |
| path: "examples/cifar10/test_data.bin" |
| mean_file: "examples/cifar10/image_mean.bin" |
| batchsize: 100 |
| shape: 3 |
| shape: 32 |
| shape: 32 |
| } |
| include: kTest |
| } |
| |
| layer { |
| name: "conv1" |
| type: kCudnnConv |
| srclayers: "data" |
| convolution_conf { |
| num_filters: 32 |
| kernel: 5 |
| stride: 1 |
| pad:2 |
| } |
| param { |
| name: "w1" |
| init { |
| type:kGaussian |
| std:0.0001 |
| } |
| } |
| param { |
| name: "b1" |
| lr_scale:2.0 |
| wd_scale: 0 |
| init { |
| type: kConstant |
| value:0 |
| } |
| } |
| } |
| |
| layer { |
| name: "pool1" |
| type: kCudnnPool |
| srclayers: "conv1" |
| pooling_conf { |
| pool: MAX |
| kernel: 3 |
| stride: 2 |
| } |
| } |
| layer { |
| name: "relu1" |
| type: kCudnnActivation |
| activation_conf { |
| type: RELU |
| } |
| share_src_blobs: true |
| srclayers:"pool1" |
| } |
| layer { |
| name: "norm1" |
| type: kCudnnLRN |
| lrn_conf { |
| local_size: 3 |
| alpha: 5e-05 |
| beta: 0.75 |
| } |
| srclayers:"relu1" |
| } |
| layer { |
| name: "conv2" |
| type: kCudnnConv |
| srclayers: "norm1" |
| convolution_conf { |
| num_filters: 32 |
| kernel: 5 |
| stride: 1 |
| pad:2 |
| } |
| param { |
| name: "w2" |
| init { |
| type:kGaussian |
| std:0.01 |
| } |
| } |
| param { |
| name: "b2" |
| lr_scale:2.0 |
| wd_scale: 0 |
| init { |
| type: kConstant |
| value:0 |
| } |
| } |
| } |
| layer { |
| name: "relu2" |
| type: kCudnnActivation |
| activation_conf { |
| type: RELU |
| } |
| share_src_blobs: true |
| srclayers:"conv2" |
| } |
| layer { |
| name: "pool2" |
| type: kCudnnPool |
| srclayers: "relu2" |
| pooling_conf { |
| pool: AVG |
| kernel: 3 |
| stride: 2 |
| } |
| } |
| layer { |
| name: "norm2" |
| type: kCudnnLRN |
| lrn_conf { |
| local_size: 3 |
| alpha: 5e-05 |
| beta: 0.75 |
| } |
| srclayers:"pool2" |
| } |
| layer { |
| name: "conv3" |
| type: kCudnnConv |
| srclayers: "norm2" |
| convolution_conf { |
| num_filters: 64 |
| kernel: 5 |
| stride: 1 |
| pad:2 |
| } |
| param { |
| name: "w3" |
| init { |
| type:kGaussian |
| std:0.01 |
| } |
| } |
| param { |
| name: "b3" |
| lr_scale: 2 |
| wd_scale: 0 |
| init { |
| type: kConstant |
| value:0 |
| } |
| } |
| } |
| layer { |
| name: "relu3" |
| type: kCudnnActivation |
| activation_conf { |
| type: RELU |
| } |
| share_src_blobs: true |
| srclayers:"conv3" |
| } |
| layer { |
| name: "pool3" |
| type: kCudnnPool |
| srclayers: "relu3" |
| pooling_conf { |
| pool: AVG |
| kernel: 3 |
| stride: 2 |
| } |
| } |
| layer { |
| name: "ip1" |
| type: kInnerProduct |
| srclayers:"pool3" |
| innerproduct_conf { |
| num_output: 10 |
| } |
| param { |
| name: "w4" |
| wd_scale:250 |
| init { |
| type:kGaussian |
| std:0.01 |
| } |
| } |
| param { |
| name: "b4" |
| lr_scale:2.0 |
| wd_scale:0 |
| init { |
| type: kConstant |
| value:0 |
| } |
| } |
| } |
| layer { |
| name : "softmax" |
| type: kCudnnSoftmax |
| srclayers: "ip1" |
| include: kTest |
| } |
| |
| layer { |
| name : "accuracy" |
| type: kAccuracy |
| srclayers: "softmax" |
| srclayers: "data" |
| include: kTest |
| } |
| layer{ |
| name: "loss" |
| type: kSoftmaxLoss |
| srclayers:"ip1" |
| srclayers: "data" |
| include : kTrain |
| } |
| # uncomment "softmax", "argsort", "output" layer and comment "loss" layer |
| # to extract features from argsort |
| # layer { |
| # name : "output" |
| # type: kCSVOutput |
| # srclayers: "argsort" |
| # store_conf { |
| # path: "examples/cifar10/out.csv" |
| # } |
| # } |
| } |
| cluster { |
| nworker_groups: 1 |
| nserver_groups: 1 |
| nworkers_per_group: 1 |
| nworkers_per_procs: 1 |
| workspace: "examples/cifar10" |
| } |