Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.lang.fortran    |    Putting John Backus on a giant pedestal    |    5,127 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 4,550 of 5,127    |
|    Robinn to All    |
|    CPU time for transcendental functions    |
|    15 Dec 23 09:59:56    |
      From: 32s116e@gmail.invalid              I got some old neural network code (written about 30 years ago).       It has several activation functions, which only change 2 lines, like so:               if (activation(1:2).eq.'SI' .or. activation(1:2).eq.'LO') then        output(i,j) = 1.0/(1.0+EXP(-output(i,j))) ! sigmoid        slope(i,j) = output(i,j) * (1.0 - output(i,j)) ! sigmoid        elseif (activation(1:2).eq.'TA') then        output(i,j) = TANH(output(i,j)) ! TANH        slope(i,j) = 1.0 - output(i,j)*output(i,j) ! TANH        elseif (activation(1:2).eq.'AR') then        y = output(i,j)        output(i,j) = ATAN(y) ! arctan        slope(i,j) = 1.0/(1.0 +y*y) ! arctan        elseif (activation(1:5).eq.'SOFTP') then        y = EXP(output(i,j))        output(i,j) = LOG(1.0+y) ! softplus        slope(i,j) = 1.0/(1.0+1.0/y) ! softplus        elseif (activation(1:5).eq.'SOFTS') then        y = output(i,j)        output(i,j) = y/(ABS(y)+1.0) ! softsign        slope(i,j) = 1.0/(1.0+ABS(y))**2 ! softsign              Now when running it, the tanh option is slowest, as expected.       But the sigmoid (using exp) is faster than softsign, which only needs       abs and simple arithmetic. How can this be? Even if exp is using a       table lookup and spline interpolation, I would think that is slower.       Softsign would have an extra divide, but I can't see that tipping the       scales.              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca