singa-dev mailing list archives

Site index · List index
Message view
Top
From GitBox <...@apache.org>
Subject [GitHub] [singa] chrishkchris commented on issue #552: SINGA-496 Implement softplus and softsign functions for tensor math
Date Sat, 16 Nov 2019 11:17:20 GMT
```chrishkchris commented on issue #552: SINGA-496 Implement softplus and softsign functions for
tensor math
URL: https://github.com/apache/singa/pull/552#issuecomment-554627773

For example, you can change the logic as follows:
aa=a is {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}
so cc=a is {-2.0f, 1.0f, 0.0f, 1.0f, 2.0f, 3.0f}
p = SoftPlus(cc)
and finally uses  EXPECT_NEAR to check if it is near log(exp(input)) + 1.0f
Use the code:
```
TEST_F(TensorMath, SoftPlusCpp) {
Tensor aa = a.Clone();
Tensor cc = aa - 3.0f;
const float *dptr = cc.data<float>();
EXPECT_NEAR(-2.0f, dptr[0], 1e-5);
EXPECT_NEAR(-1.0f, dptr[1], 1e-5);
EXPECT_NEAR(0.0f, dptr[2], 1e-5);

Tensor p = SoftPlus(cc);
const float *dptr1 = p.data<float>();
EXPECT_NEAR(log(exp(-2.0f) + 1.0f), dptr1[0], 1e-5);
EXPECT_NEAR(log(exp(-1.0f) + 1.0f), dptr1[1], 1e-5);
EXPECT_NEAR(log(exp(0.0f) + 1.0f), dptr1[2], 1e-5);
EXPECT_NEAR(log(exp(1.0f) + 1.0f), dptr1[3], 1e-5);
EXPECT_NEAR(log(exp(2.0f) + 1.0f), dptr1[4], 1e-5);
}
```

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.