summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/caffe/vision_layers.hpp2
-rw-r--r--src/caffe/layers/conv_layer.cpp10
-rw-r--r--src/caffe/layers/conv_layer.cu4
3 files changed, 8 insertions, 8 deletions
diff --git a/include/caffe/vision_layers.hpp b/include/caffe/vision_layers.hpp
index c8b4609c..a261ac35 100644
--- a/include/caffe/vision_layers.hpp
+++ b/include/caffe/vision_layers.hpp
@@ -55,7 +55,7 @@ class ConvolutionLayer : public Layer<Dtype> {
int num_output_;
int group_;
Blob<Dtype> col_buffer_;
- shared_ptr<Blob<Dtype> > bias_multiplier_;
+ Blob<Dtype> bias_multiplier_;
bool bias_term_;
int M_;
int K_;
diff --git a/src/caffe/layers/conv_layer.cpp b/src/caffe/layers/conv_layer.cpp
index e8f08c7e..11f29e78 100644
--- a/src/caffe/layers/conv_layer.cpp
+++ b/src/caffe/layers/conv_layer.cpp
@@ -76,10 +76,10 @@ void ConvolutionLayer<Dtype>::SetUp(const vector<Blob<Dtype>*>& bottom,
bias_filler->Fill(this->blobs_[1].get());
}
}
- // Set up the bias filler
+ // Set up the all ones "bias multiplier" for adding bias using blas
if (bias_term_) {
- bias_multiplier_.reset(new Blob<Dtype>(1, 1, 1, N_));
- caffe_set(N_, Dtype(1), bias_multiplier_->mutable_cpu_data());
+ bias_multiplier_.Reshape(1, 1, 1, N_);
+ caffe_set(N_, Dtype(1), bias_multiplier_.mutable_cpu_data());
}
this->param_propagate_down_.resize(this->blobs_.size(), true);
}
@@ -110,7 +110,7 @@ Dtype ConvolutionLayer<Dtype>::Forward_cpu(const vector<Blob<Dtype>*>& bottom,
if (bias_term_) {
caffe_cpu_gemm<Dtype>(CblasNoTrans, CblasNoTrans, num_output_,
N_, 1, (Dtype)1., this->blobs_[1]->cpu_data(),
- bias_multiplier_->cpu_data(),
+ bias_multiplier_.cpu_data(),
(Dtype)1., top_data + (*top)[i]->offset(n));
}
}
@@ -144,7 +144,7 @@ void ConvolutionLayer<Dtype>::Backward_cpu(const vector<Blob<Dtype>*>& top,
for (int n = 0; n < num_; ++n) {
caffe_cpu_gemv<Dtype>(CblasNoTrans, num_output_, N_,
1., top_diff + top[0]->offset(n),
- bias_multiplier_->cpu_data(), 1.,
+ bias_multiplier_.cpu_data(), 1.,
bias_diff);
}
}
diff --git a/src/caffe/layers/conv_layer.cu b/src/caffe/layers/conv_layer.cu
index 0b6e912b..d328fbde 100644
--- a/src/caffe/layers/conv_layer.cu
+++ b/src/caffe/layers/conv_layer.cu
@@ -35,7 +35,7 @@ Dtype ConvolutionLayer<Dtype>::Forward_gpu(const vector<Blob<Dtype>*>& bottom,
if (bias_term_) {
caffe_gpu_gemm<Dtype>(CblasNoTrans, CblasNoTrans, num_output_,
N_, 1, (Dtype)1., this->blobs_[1]->gpu_data(),
- bias_multiplier_->gpu_data(),
+ bias_multiplier_.gpu_data(),
(Dtype)1., top_data + (*top)[i]->offset(n));
}
}
@@ -69,7 +69,7 @@ void ConvolutionLayer<Dtype>::Backward_gpu(const vector<Blob<Dtype>*>& top,
for (int n = 0; n < num_; ++n) {
caffe_gpu_gemv<Dtype>(CblasNoTrans, num_output_, N_,
1., top_diff + top[0]->offset(n),
- bias_multiplier_->gpu_data(), 1.,
+ bias_multiplier_.gpu_data(), 1.,
bias_diff);
}
}