summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Donahue <jeff.donahue@gmail.com>2016-09-20 12:04:49 -0700
committerGitHub <noreply@github.com>2016-09-20 12:04:49 -0700
commitd208b714abb8425f1b96793e04508ad21724ae3f (patch)
tree02f238a01365f5392a016830696a93262e0e9ef4
parent25422de79f58e214e55834524bfe696f8651889f (diff)
parent9bc83e32b39e2c9bbf4bf20d69d4f215d73a414e (diff)
downloadcaffeonacl-d208b714abb8425f1b96793e04508ad21724ae3f.tar.gz
caffeonacl-d208b714abb8425f1b96793e04508ad21724ae3f.tar.bz2
caffeonacl-d208b714abb8425f1b96793e04508ad21724ae3f.zip
Merge pull request #4600 from bwilbertz/fix_scale_layer
fix layerSetUp of scale_layer to not add bias blob when already present
-rw-r--r--src/caffe/layers/scale_layer.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/caffe/layers/scale_layer.cpp b/src/caffe/layers/scale_layer.cpp
index ecdbb123..e652dad6 100644
--- a/src/caffe/layers/scale_layer.cpp
+++ b/src/caffe/layers/scale_layer.cpp
@@ -56,9 +56,17 @@ void ScaleLayer<Dtype>::LayerSetUp(const vector<Blob<Dtype>*>& bottom,
bias_bottom_vec_.resize(1);
bias_bottom_vec_[0] = bottom[0];
bias_layer_->SetUp(bias_bottom_vec_, top);
- bias_param_id_ = this->blobs_.size();
- this->blobs_.resize(bias_param_id_ + 1);
- this->blobs_[bias_param_id_] = bias_layer_->blobs()[0];
+ if (this->blobs_.size() + bottom.size() < 3) {
+ // case: blobs.size == 1 && bottom.size == 1
+ // or blobs.size == 0 && bottom.size == 2
+ bias_param_id_ = this->blobs_.size();
+ this->blobs_.resize(bias_param_id_ + 1);
+ this->blobs_[bias_param_id_] = bias_layer_->blobs()[0];
+ } else {
+ // bias param already initialized
+ bias_param_id_ = this->blobs_.size() - 1;
+ bias_layer_->blobs()[0] = this->blobs_[bias_param_id_];
+ }
bias_propagate_down_.resize(1, false);
}
this->param_propagate_down_.resize(this->blobs_.size(), true);