can't configure weight_filter in inner_product_param

253 views
Skip to first unread message

Junjie Zhang

unread,
Aug 3, 2015, 5:22:19 PM8/3/15
to Caffe Users
Hi, everyone
I met a problem. I tried to finetune a new dataset with VGG 16 layer network.
But I got the following error information.
I0804 06:48:29.185379 24930 caffe.cpp:113] Use GPU with device ID 0
I0804 06:48:29.380897 24930 caffe.cpp:121] Starting Optimization
I0804 06:48:29.380971 24930 solver.cpp:32] Initializing solver from parameters:
test_iter: 100
test_interval: 1000
base_lr: 0.001
display: 20
max_iter: 100000
lr_policy: "step"
gamma: 0.1
momentum: 0.9
weight_decay: 0.0005
stepsize: 20000
snapshot: 10000
snapshot_prefix: "models/vgg/vgg"
net: "models/vgg/vgg_train_val.prototxt"
I0804 06:48:29.381000 24930 solver.cpp:70] Creating training net from net file: models/vgg/vgg_train_val.prototxt
[libprotobuf ERROR google/protobuf/text_format.cc:245] Error parsing text-format caffe.NetParameter: 345:19: Message type "caffe.InnerProductParameter" has no field named "weight_filter".
F0804 06:48:29.381695 24930 upgrade_proto.cpp:928] Check failed: ReadProtoFromTextFile(param_file, param) Failed to parse NetParameter file: models/vgg/vgg_train_val.prototxt
*** Check failure stack trace: ***
    @     0x7f92eadfe9fd  google::LogMessage::Fail()
    @     0x7f92eae0089d  google::LogMessage::SendToLog()
    @     0x7f92eadfe5ec  google::LogMessage::Flush()
    @     0x7f92eae011be  google::LogMessageFatal::~LogMessageFatal()
    @     0x7f92eb24d3de  caffe::ReadNetParamsFromTextFileOrDie()
    @     0x7f92eb14b882  caffe::Solver<>::InitTrainNet()
    @     0x7f92eb14c773  caffe::Solver<>::Init()
    @     0x7f92eb14c946  caffe::Solver<>::Solver()
    @           0x40cae0  caffe::GetSolver<>()
    @           0x406661  train()
    @           0x404be1  main
    @     0x7f92ea315ec5  (unknown)
    @           0x40518d  (unknown)

It shows that I can't use weight_filter in inner_product-param, but it can be used in other training example.
The following is part of my configuration:
layers {
  bottom: "conv5_2"
  top: "conv5_3"
  name: "conv5_3"
  type: CONVOLUTION
  convolution_param {
    num_output: 512
    pad: 1
    kernel_size: 3
  }
  blobs_lr: 0
  blobs_lr: 0
}
layers {
  bottom: "conv5_3"
  top: "conv5_3"
  name: "relu5_3"
  type: RELU
}
layers {
  bottom: "conv5_3"
  top: "pool5"
  name: "pool5"
  type: POOLING
  pooling_param {
    pool: MAX
    kernel_size: 2
    stride: 2
  }
}
layers {
  bottom: "pool5"
  top: "vgg_fc6-pes"
  name: "vgg_fc6-pes"
  type: INNER_PRODUCT
  inner_product_param {
    num_output: 2048
    weight_filter {
      type: "gaussian"
      std: 0.001
    }
    bias_filter {
      type: "constant"
      value: 0
    }
  }
  blobs_lr: 0
  blobs_lr: 0
}
layers {
  bottom: "vgg_fc6-pes"
  top: "vgg_fc6-pes"
  name: "relu6"
  type: RELU
}
layers {
  bottom: "vgg_fc6-pes"
  top: "vgg_fc6-pes"
  name: "drop6"
  type: DROPOUT
  dropout_param {
    dropout_ratio: 0.5
  }
}
layers {
  bottom: "vgg_fc6-pes"
  top: "vgg_fc7-pes"
  name: "vgg_fc7-pes"
  type: INNER_PRODUCT
  inner_product_param {
    num_output: 2048
    weight_filter {
      type: "gaussian"
      std: 0.001
    }
    bias_filter {
      type: "constant"
      value: 0
    }
  }
  blobs_lr: 0
  blobs_lr: 0
}
layers {
  bottom: "vgg_fc7-pes"
  top: "vgg_fc7-pes"
  name: "relu7"
  type: RELU
}
layers {
  bottom: "vgg_fc7-pes"
  top: "vgg_fc7-pes"
  name: "drop7"
  type: DROPOUT
  dropout_param {
    dropout_ratio: 0.5
  }
}
layers {
  name: "vgg_fc8-pes"
  bottom: "vgg_fc7-pes"
  top: "vgg_fc8-pes"
  type: INNER_PRODUCT
  inner_product_param {
    num_output: 2
    weight_filter {
      type: "gaussian"
      std: 0.001
    }
    bias_filter {
      type: "constant"
      value: 0
    }
  }
  blobs_lr: 0
  blobs_lr: 0
}

Any suggestion?
Thanks.

Yi Liu

unread,
Aug 4, 2015, 5:54:06 PM8/4/15
to Caffe Users
Not sure what weight_filter. Tentatively, maybe you meant weight_filler?
Reply all
Reply to author
Forward
0 new messages