|
|
|
@ -129,8 +129,7 @@ void HierarchicalSigmoidLayer::forward(PassType passType) {
|
|
|
|
|
*cpuOutput_,
|
|
|
|
|
-1); // scaleSum
|
|
|
|
|
preOutput_.value->softrelu(*preOutput_.value);
|
|
|
|
|
MatrixPtr sum =
|
|
|
|
|
Matrix::create(batchSize, 1, /* trans= */ false, false);
|
|
|
|
|
MatrixPtr sum = Matrix::create(batchSize, 1, /* trans= */ false, false);
|
|
|
|
|
preOutput_.value->rowSum(*sum);
|
|
|
|
|
cpuOutput_->add(*sum);
|
|
|
|
|
if (useGpu_) {
|
|
|
|
@ -164,8 +163,7 @@ void HierarchicalSigmoidLayer::backward(const UpdateCallback& callback) {
|
|
|
|
|
} else {
|
|
|
|
|
cpuBias_ = biases_grad;
|
|
|
|
|
}
|
|
|
|
|
preOutput_.grad->addByBitCodeBackward(
|
|
|
|
|
numClasses_, *cpuLabel_, *cpuBias_);
|
|
|
|
|
preOutput_.grad->addByBitCodeBackward(numClasses_, *cpuLabel_, *cpuBias_);
|
|
|
|
|
if (useGpu) {
|
|
|
|
|
biases_grad->copyFrom(*cpuBias_);
|
|
|
|
|
} else {
|
|
|
|
|