module Chainer::Functions::Activation

Public Class Methods

_log_softmax(x) click to toggle source
# File lib/chainer/functions/activation/log_softmax.rb, line 14
def self._log_softmax(x)
  log_z = logsumexp(x)
  x - log_z
end
logsumexp(x) click to toggle source
# File lib/chainer/functions/activation/log_softmax.rb, line 4
def self.logsumexp(x)
  xm = Chainer.get_array_module(x)
  m = x.max(axis: 1, keepdims: true)
  y = x - m
  y = xm::NMath.exp(y)
  s = y.sum(axis: 1, keepdims: true)
  s = xm::NMath.log(s)
  m + s
end