blob: 0f9402e8222ae7acb66aaedb5d1776a6af3b56e0 [file] [log] [blame]
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"
}