Class: Chainer::Functions::Activation::Relu

Inherits:
Chainer::Function show all
Defined in:
lib/chainer/functions/activation/relu.rb

Overview

Rectified Linear Unit.

Instance Attribute Summary

Attributes inherited from Chainer::Function

#inputs, #output_data, #outputs, #rank, #retain_after_backward

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Chainer::Function

#backward, #call, #forward, #initialize, #retain_inputs, #retain_outputs

Constructor Details

This class inherits a constructor from Chainer::Function

Class Method Details

.relu(x) ⇒ Chainer::Variable

Rectified Linear Unit function.

$$ f(x)=\max(0, x). $$

Examples:

> x = Numo::SFloat[[-1, 0], [2, -3], [-2, 1]]
> (x < 0).any?
=> true
> F = Chainer::Functions::Activation::Relu
> y = F.relu(x)
> (y.data < 0).any?
=> false
> y.shape
=> [3, 2]

Parameters:

  • x (Chainer::Variable or Numo::NArray)

    Input variable. A $(s_1, s_2, …, s_N)$-shaped float array.

Returns:

  • (Chainer::Variable)

    Output variable. A $(s_1, s_2, …, s_N)$-shaped float array.



25
26
27
# File 'lib/chainer/functions/activation/relu.rb', line 25

def self.relu(x)
  self.new.(x)
end

Instance Method Details

#backward_cpu(x, gy) ⇒ Object



35
36
37
38
# File 'lib/chainer/functions/activation/relu.rb', line 35

def backward_cpu(x, gy)
  y = @output_data[0]
  [Utils::Array.force_array(gy[0] * (y > 0))]
end

#forward_cpu(x) ⇒ Object



29
30
31
32
33
# File 'lib/chainer/functions/activation/relu.rb', line 29

def forward_cpu(x)
  retain_inputs([])
  retain_outputs([0])
  [Utils::Array.force_array(x[0].class.maximum(x[0], 0))]
end