Skip to content

Commit 5394628

Browse files
bug fix when using hsigmoid with gpu
1 parent cda3a77 commit 5394628

File tree

2 files changed

+38
-41
lines changed

2 files changed

+38
-41
lines changed

paddle/gserver/layers/HierarchicalSigmoidLayer.cpp

Lines changed: 38 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,10 @@ void HierarchicalSigmoidLayer::forward(PassType passType) {
7575

7676
if (useGpu_) {
7777
Matrix::resizeOrCreate(cpuOutput_,
78-
output_.value->getHeight(),
79-
output_.value->getWidth(),
80-
/* trans */ false,
81-
false);
78+
output_.value->getHeight(),
79+
output_.value->getWidth(),
80+
/* trans */ false,
81+
false);
8282
IVector::resizeOrCreate(cpuLabel_, label->getSize(), false);
8383
cpuLabel_->copyFrom(*label);
8484
cpuOutput_->copyFrom(*output_.value);
@@ -90,10 +90,10 @@ void HierarchicalSigmoidLayer::forward(PassType passType) {
9090
if (biases_.get() != NULL) {
9191
if (useGpu_) {
9292
Matrix::resizeOrCreate(cpuBias_,
93-
1,
94-
numClasses_ - 1,
95-
/* trans */ false,
96-
false);
93+
1,
94+
numClasses_ - 1,
95+
/* trans */ false,
96+
false);
9797
cpuBias_->copyFrom(*biases_->getW());
9898
} else {
9999
cpuBias_ = biases_->getW();
@@ -104,15 +104,15 @@ void HierarchicalSigmoidLayer::forward(PassType passType) {
104104
MatrixPtr input = getInputValue(i);
105105
if (useGpu_) {
106106
Matrix::resizeOrCreate(cpuInput_,
107-
input->getHeight(),
108-
input->getWidth(),
109-
/* trans */ false,
110-
false);
107+
input->getHeight(),
108+
input->getWidth(),
109+
/* trans */ false,
110+
false);
111111
Matrix::resizeOrCreate(cpuWeight_,
112-
weights_[i]->getW()->getHeight(),
113-
weights_[i]->getW()->getWidth(),
114-
/* trans */ false,
115-
false);
112+
weights_[i]->getW()->getHeight(),
113+
weights_[i]->getW()->getWidth(),
114+
/* trans */ false,
115+
false);
116116
cpuInput_->copyFrom(*input);
117117
cpuWeight_->copyFrom(*weights_[i]->getW());
118118
} else {
@@ -129,8 +129,7 @@ void HierarchicalSigmoidLayer::forward(PassType passType) {
129129
*cpuOutput_,
130130
-1); // scaleSum
131131
preOutput_.value->softrelu(*preOutput_.value);
132-
MatrixPtr sum =
133-
Matrix::create(batchSize, 1, /* trans= */ false, false);
132+
MatrixPtr sum = Matrix::create(batchSize, 1, /* trans= */ false, false);
134133
preOutput_.value->rowSum(*sum);
135134
cpuOutput_->add(*sum);
136135
if (useGpu_) {
@@ -156,16 +155,15 @@ void HierarchicalSigmoidLayer::backward(const UpdateCallback& callback) {
156155
MatrixPtr biases_grad = biases_->getWGrad();
157156
if (useGpu_) {
158157
Matrix::resizeOrCreate(cpuBias_,
159-
1,
160-
numClasses_ - 1,
161-
/* trans */ false,
162-
false);
158+
1,
159+
numClasses_ - 1,
160+
/* trans */ false,
161+
false);
163162
cpuBias_->copyFrom(*biases_grad);
164163
} else {
165164
cpuBias_ = biases_grad;
166165
}
167-
preOutput_.grad->addByBitCodeBackward(
168-
numClasses_, *cpuLabel_, *cpuBias_);
166+
preOutput_.grad->addByBitCodeBackward(numClasses_, *cpuLabel_, *cpuBias_);
169167
if (useGpu) {
170168
biases_grad->copyFrom(*cpuBias_);
171169
} else {
@@ -182,15 +180,15 @@ void HierarchicalSigmoidLayer::backward(const UpdateCallback& callback) {
182180
MatrixPtr weights_grad = weights_[i]->getWGrad();
183181
if (useGpu_) {
184182
Matrix::resizeOrCreate(cpuInput_,
185-
input->getHeight(),
186-
input->getWidth(),
187-
/* trans */ false,
188-
false);
183+
input->getHeight(),
184+
input->getWidth(),
185+
/* trans */ false,
186+
false);
189187
Matrix::resizeOrCreate(cpuWeightGrad_,
190-
weights_grad->getHeight(),
191-
weights_grad->getWidth(),
192-
/* trans */ false,
193-
false);
188+
weights_grad->getHeight(),
189+
weights_grad->getWidth(),
190+
/* trans */ false,
191+
false);
194192
cpuInput_->copyFrom(*input);
195193
cpuWeightGrad_->copyFrom(*weights_grad);
196194
} else {
@@ -213,15 +211,15 @@ void HierarchicalSigmoidLayer::backward(const UpdateCallback& callback) {
213211
if (inputGrad) {
214212
if (useGpu_) {
215213
Matrix::resizeOrCreate(cpuInputGrad_,
216-
inputGrad->getHeight(),
217-
inputGrad->getWidth(),
218-
/* trans */ false,
219-
false);
214+
inputGrad->getHeight(),
215+
inputGrad->getWidth(),
216+
/* trans */ false,
217+
false);
220218
Matrix::resizeOrCreate(cpuWeight_,
221-
weights_[i]->getW()->getHeight(),
222-
weights_[i]->getW()->getWidth(),
223-
/* trans */ false,
224-
false);
219+
weights_[i]->getW()->getHeight(),
220+
weights_[i]->getW()->getWidth(),
221+
/* trans */ false,
222+
false);
225223
cpuInputGrad_->copyFrom(*inputGrad);
226224
cpuWeight_->copyFrom(*weights_[i]->getW());
227225
} else {

paddle/gserver/layers/HierarchicalSigmoidLayer.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ class HierarchicalSigmoidLayer : public Layer {
8989
MatrixPtr cpuBias_;
9090
MatrixPtr cpuOutput_;
9191
IVectorPtr cpuLabel_;
92-
9392
};
9493

9594
} // namespace paddle

0 commit comments

Comments
 (0)