| name: "alexnet" |
| train_steps: 450000 |
| test_steps: 500 |
| test_freq: 1000 |
| disp_freq: 20 |
| checkpoint_freq: 100000 |
| checkpoint_after: 100000 |
| gpu: 0 |
| #debug: true |
| #checkpoint_path: "examples/alexnet/checkpoint/step10000-worker0" |
| train_one_batch { |
| alg: kBP |
| } |
| updater{ |
| type: kSGD |
| weight_decay: 0.0005 |
| momentum: 0.9 |
| learning_rate { |
| type: kStep |
| base_lr: 0.01 |
| step_conf { |
| gamma: 0.1 |
| change_freq: 100000 |
| } |
| } |
| } |
| neuralnet { |
| layer{ |
| name: "data" |
| type: kRecordInput |
| store_conf { |
| backend: "kvfile" |
| path :"/data/dataset/imagenet/train_record.bin" |
| mean_file: "/data/dataset/imagenet/image_mean.bin" |
| batchsize: 256 |
| #random_skip: 1000 |
| shape: 3 |
| shape: 256 |
| shape: 256 |
| } |
| include: kTrain |
| } |
| layer{ |
| name: "data" |
| type: kRecordInput |
| store_conf { |
| backend: "kvfile" |
| path :"/data/dataset/imagenet/val_record.bin" |
| mean_file: "/data/dataset/imagenet/image_mean.bin" |
| batchsize: 100 |
| shape: 3 |
| shape: 256 |
| shape: 256 |
| } |
| include: kTest |
| } |
| layer{ |
| name: "image" |
| type: kImagePreprocess |
| rgbimage_conf { |
| cropsize: 227 |
| mirror: true |
| } |
| # partition_dim: 0 |
| srclayers: "data" |
| } |
| layer{ |
| name: "conv1" |
| type: kCudnnConv |
| srclayers: "image" |
| convolution_conf { |
| num_filters: 96 |
| kernel: 11 |
| stride: 4 |
| } |
| # partition_dim: 0 |
| param { |
| name: "w1" |
| init { |
| type: kGaussian |
| std: 0.01 |
| } |
| } |
| param { |
| name: "b1" |
| lr_scale: 2 |
| wd_scale: 0 |
| init { |
| type: kConstant |
| value: 0 |
| } |
| } |
| } |
| layer { |
| name: "relu1" |
| type: kCudnnActivation |
| activation_conf { |
| type: RELU |
| } |
| share_src_blobs: true |
| srclayers: "conv1" |
| # partition_dim: 0 |
| } |
| layer { |
| name: "pool1" |
| type: kCudnnPool |
| pooling_conf { |
| pool: MAX |
| kernel: 3 |
| stride: 2 |
| } |
| srclayers: "relu1" |
| # partition_dim: 0 |
| } |
| layer { |
| name: "norm1" |
| type: kCudnnLRN |
| lrn_conf { |
| local_size: 5 |
| alpha: 0.0001 |
| beta: 0.75 |
| knorm: 1 |
| } |
| srclayers: "pool1" |
| # partition_dim: 0 |
| } |
| |
| layer{ |
| name: "conv2" |
| type: kCudnnConv |
| srclayers: "norm1" |
| convolution_conf { |
| num_filters: 256 |
| kernel: 5 |
| pad: 2 |
| } |
| # partition_dim: 0 |
| param { |
| name: "w2" |
| init { |
| type: kGaussian |
| std: 0.01 |
| } |
| } |
| param { |
| name: "b2" |
| lr_scale: 2 |
| wd_scale: 0 |
| init { |
| type: kConstant |
| value: 1 |
| } |
| } |
| } |
| layer { |
| name: "relu2" |
| type: kCudnnActivation |
| activation_conf { |
| type: RELU |
| } |
| share_src_blobs: true |
| srclayers: "conv2" |
| # partition_dim: 0 |
| } |
| layer { |
| name: "pool2" |
| type: kCudnnPool |
| pooling_conf { |
| pool: MAX |
| kernel: 3 |
| stride: 2 |
| } |
| srclayers: "relu2" |
| # partition_dim: 0 |
| } |
| |
| layer { |
| name: "norm2" |
| type: kCudnnLRN |
| lrn_conf { |
| local_size: 5 |
| alpha: 0.0001 |
| beta: 0.75 |
| knorm: 1 |
| } |
| srclayers: "pool2" |
| # partition_dim: 0 |
| } |
| layer{ |
| name: "conv3" |
| type: kCudnnConv |
| srclayers: "norm2" |
| convolution_conf { |
| num_filters: 384 |
| kernel: 3 |
| pad: 1 |
| } |
| # partition_dim: 0 |
| 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" |
| # partition_dim: 0 |
| } |
| layer{ |
| name: "conv4" |
| type: kCudnnConv |
| srclayers: "relu3" |
| convolution_conf { |
| num_filters: 384 |
| kernel: 3 |
| pad: 1 |
| } |
| # partition_dim: 0 |
| param { |
| name: "w4" |
| init { |
| type: kGaussian |
| std: 0.01 |
| } |
| } |
| param { |
| name: "b4" |
| lr_scale:2 |
| wd_scale:0 |
| init { |
| type: kConstant |
| value: 1 |
| } |
| } |
| } |
| layer { |
| name: "relu4" |
| type: kCudnnActivation |
| activation_conf { |
| type: RELU |
| } |
| share_src_blobs: true |
| srclayers: "conv4" |
| # partition_dim: 0 |
| } |
| layer{ |
| name: "conv5" |
| type: kCudnnConv |
| srclayers: "relu4" |
| convolution_conf { |
| num_filters: 256 |
| kernel: 3 |
| pad: 1 |
| } |
| # partition_dim: 0 |
| param { |
| name: "w5" |
| init { |
| type: kGaussian |
| std: 0.01 |
| } |
| } |
| param { |
| name: "b5" |
| lr_scale: 2 |
| wd_scale: 0 |
| init { |
| type: kConstant |
| value: 1 |
| } |
| } |
| } |
| layer { |
| name: "relu5" |
| type: kCudnnActivation |
| activation_conf { |
| type: RELU |
| } |
| share_src_blobs: true |
| srclayers: "conv5" |
| # partition_dim: 0 |
| } |
| layer { |
| name: "pool5" |
| type: kCudnnPool |
| pooling_conf { |
| pool: MAX |
| kernel: 3 |
| stride: 2 |
| } |
| srclayers: "relu5" |
| # partition_dim: 0 |
| } |
| layer { |
| name: "ip6" |
| type: kInnerProduct |
| innerproduct_conf { |
| num_output: 4096 |
| } |
| param { |
| name: "w6" |
| init { |
| type: kGaussian |
| std: 0.005 |
| } |
| } |
| param { |
| name: "b6" |
| lr_scale: 2 |
| wd_scale: 0 |
| init { |
| type: kConstant |
| value: 1 |
| } |
| } |
| srclayers: "pool5" |
| # partition_dim: 1 |
| } |
| layer { |
| name: "relu6" |
| type: kCudnnActivation |
| activation_conf { |
| type: RELU |
| } |
| share_src_blobs: true |
| srclayers: "ip6" |
| # partition_dim: 1 |
| } |
| layer { |
| name: "drop6" |
| type: kDropout |
| srclayers: "relu6" |
| # partition_dim: 1 |
| } |
| layer { |
| name: "ip7" |
| type: kInnerProduct |
| innerproduct_conf { |
| num_output: 4096 |
| } |
| # partition_dim: 1 |
| param { |
| name: "w7" |
| init { |
| type: kGaussian |
| std: 0.005 |
| } |
| } |
| param { |
| name: "b7" |
| lr_scale: 2 |
| wd_scale: 0 |
| init { |
| type: kConstant |
| value: 1 |
| } |
| } |
| srclayers: "drop6" |
| } |
| layer { |
| name: "relu7" |
| type: kCudnnActivation |
| activation_conf { |
| type: RELU |
| } |
| share_src_blobs: true |
| srclayers: "ip7" |
| # partition_dim: 1 |
| } |
| layer { |
| name: "drop7" |
| type: kDropout |
| srclayers: "relu7" |
| # partition_dim: 1 |
| } |
| layer { |
| name: "ip8" |
| type: kInnerProduct |
| innerproduct_conf { |
| num_output: 1000 |
| } |
| # partition_dim: 1 |
| param { |
| name: "w8" |
| init { |
| type: kGaussian |
| std: 0.01 |
| } |
| } |
| param { |
| name: "b8" |
| lr_scale: 2 |
| wd_scale: 0 |
| init { |
| type: kConstant |
| value: 0 |
| } |
| } |
| srclayers: "drop7" |
| } |
| layer { |
| name: "loss" |
| type: kCudnnSoftmaxLoss |
| softmaxloss_conf { |
| topk:1 |
| } |
| srclayers: "ip8" |
| srclayers: "data" |
| include: kTrain |
| } |
| layer { |
| name : "softmax" |
| type: kCudnnSoftmax |
| srclayers: "ip8" |
| include: kTest |
| } |
| layer { |
| name : "accuracy" |
| type: kAccuracy |
| srclayers: "softmax" |
| srclayers: "data" |
| include: kTest |
| } |
| } |
| cluster { |
| nworker_groups: 1 |
| nserver_groups: 1 |
| nworkers_per_group: 1 |
| nworkers_per_procs: 1 |
| workspace: "examples/alexnet" |
| } |