@@ -75,10 +75,10 @@ void HierarchicalSigmoidLayer::forward(PassType passType) {
75
75
76
76
if (useGpu_) {
77
77
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 );
82
82
IVector::resizeOrCreate (cpuLabel_, label->getSize (), false );
83
83
cpuLabel_->copyFrom (*label);
84
84
cpuOutput_->copyFrom (*output_.value );
@@ -90,10 +90,10 @@ void HierarchicalSigmoidLayer::forward(PassType passType) {
90
90
if (biases_.get () != NULL ) {
91
91
if (useGpu_) {
92
92
Matrix::resizeOrCreate (cpuBias_,
93
- 1 ,
94
- numClasses_ - 1 ,
95
- /* trans */ false ,
96
- false );
93
+ 1 ,
94
+ numClasses_ - 1 ,
95
+ /* trans */ false ,
96
+ false );
97
97
cpuBias_->copyFrom (*biases_->getW ());
98
98
} else {
99
99
cpuBias_ = biases_->getW ();
@@ -104,15 +104,15 @@ void HierarchicalSigmoidLayer::forward(PassType passType) {
104
104
MatrixPtr input = getInputValue (i);
105
105
if (useGpu_) {
106
106
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 );
111
111
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 );
116
116
cpuInput_->copyFrom (*input);
117
117
cpuWeight_->copyFrom (*weights_[i]->getW ());
118
118
} else {
@@ -129,8 +129,7 @@ void HierarchicalSigmoidLayer::forward(PassType passType) {
129
129
*cpuOutput_,
130
130
-1 ); // scaleSum
131
131
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 );
134
133
preOutput_.value ->rowSum (*sum);
135
134
cpuOutput_->add (*sum);
136
135
if (useGpu_) {
@@ -156,16 +155,15 @@ void HierarchicalSigmoidLayer::backward(const UpdateCallback& callback) {
156
155
MatrixPtr biases_grad = biases_->getWGrad ();
157
156
if (useGpu_) {
158
157
Matrix::resizeOrCreate (cpuBias_,
159
- 1 ,
160
- numClasses_ - 1 ,
161
- /* trans */ false ,
162
- false );
158
+ 1 ,
159
+ numClasses_ - 1 ,
160
+ /* trans */ false ,
161
+ false );
163
162
cpuBias_->copyFrom (*biases_grad);
164
163
} else {
165
164
cpuBias_ = biases_grad;
166
165
}
167
- preOutput_.grad ->addByBitCodeBackward (
168
- numClasses_, *cpuLabel_, *cpuBias_);
166
+ preOutput_.grad ->addByBitCodeBackward (numClasses_, *cpuLabel_, *cpuBias_);
169
167
if (useGpu) {
170
168
biases_grad->copyFrom (*cpuBias_);
171
169
} else {
@@ -182,15 +180,15 @@ void HierarchicalSigmoidLayer::backward(const UpdateCallback& callback) {
182
180
MatrixPtr weights_grad = weights_[i]->getWGrad ();
183
181
if (useGpu_) {
184
182
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 );
189
187
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 );
194
192
cpuInput_->copyFrom (*input);
195
193
cpuWeightGrad_->copyFrom (*weights_grad);
196
194
} else {
@@ -213,15 +211,15 @@ void HierarchicalSigmoidLayer::backward(const UpdateCallback& callback) {
213
211
if (inputGrad) {
214
212
if (useGpu_) {
215
213
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 );
220
218
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 );
225
223
cpuInputGrad_->copyFrom (*inputGrad);
226
224
cpuWeight_->copyFrom (*weights_[i]->getW ());
227
225
} else {
0 commit comments