diff options
-rw-r--r-- | include/caffe/vision_layers.hpp | 2 | ||||
-rw-r--r-- | src/caffe/layers/conv_layer.cpp | 10 | ||||
-rw-r--r-- | src/caffe/layers/conv_layer.cu | 4 |
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); } } |