class_docstr: Old-style interface of a differentiable function.
  
  This class provides an interface to implement an old-style differentiable
  function (i.e., the function application is recorded to the computational
  graph). The subclass of :class:`Function` that implement :meth:`forward`
  and :meth:`backward` can be used to run the forward computation and
  automatically induce the backpropagation procedure.
  
  There is another way to implement such a function: subclassing
  :class:`~chainer.FunctionNode`. There are mainly two
  differences between them.
  
  1. The *differentiable backprop* is available for
     :class:`~chainer.FunctionNode`,
     while it is not for :class:`Function` because the :meth:`backward`
     of the latter directly operates on the arrays instead of
     :class:`Variable` objects so that it cannot record the history of
     the computation.
  2. The information passed to :meth:`backward` is different. In
     :class:`~chainer.FunctionNode`,
     which inputs the function node has to compute
     the gradients w.r.t. is passed so that it can omit unnecessary
     computations, while :class:`Function` always has to compute gradients
     w.r.t. all the input nodes.
     The :class:`~chainer.FunctionNode` also accepts the
     current gradient values of the input nodes so that the accumulation
     work can be merged with the gradient computation if an efficient kernel
     is available.
  
  This class uses :class:`~chainer.FunctionAdapter` to convert
  the interface to that of :class:`~chainer.FunctionNode` and
  adds the :class:`~chainer.FunctionNode` object to the
  computational graph.
  
  See :class:`~chainer.FunctionNode` for the details of
  building the computational graph in Chainer.
class_docstr_tok: ["Old-style","interface","of","a","differentiable","function",".","This","class","provides","an","interface","to","implement","an","old-style","differentiable","function","(","i.e.",",","the","function","application","is","recorded","to","the","computational","graph",")",".","The","subclass","of",":","class",":","`","Function","`","that","implement",":","meth",":","`","forward","`","and",":","meth",":","`","backward","`","can","be","used","to","run","the","forward","computation","and","automatically","induce","the","backpropagation","procedure",".","There","is","another","way","to","implement","such","a","function",":","subclassing",":","class",":","`","~chainer.FunctionNode","`",".","There","are","mainly","two","differences","between","them",".","1",".","The","*","differentiable","backprop","*","is","available","for",":","class",":","`","~chainer.FunctionNode","`",",","while","it","is","not","for",":","class",":","`","Function","`","because","the",":","meth",":","`","backward","`","of","the","latter","directly","operates","on","the","arrays","instead","of",":","class",":","`","Variable","`","objects","so","that","it","can","not","record","the","history","of","the","computation",".","2",".","The","information","passed","to",":","meth",":","`","backward","`","is","different",".","In",":","class",":","`","~chainer.FunctionNode","`",",","which","inputs","the","function","node","has","to","compute","the","gradients","w.r.t",".","is","passed","so","that","it","can","omit","unnecessary","computations",",","while",":","class",":","`","Function","`","always","has","to","compute","gradients","w.r.t",".","all","the","input","nodes",".","The",":","class",":","`","~chainer.FunctionNode","`","also","accepts","the","current","gradient","values","of","the","input","nodes","so","that","the","accumulation","work","can","be","merged","with","the","gradient","computation","if","an","efficient","kernel","is","available",".","This","class","uses",":","class",":","`","~chainer.FunctionAdapter","`","to","convert","the","interface","to","that","of",":","class",":","`","~chainer.FunctionNode","`","and","adds","the",":","class",":","`","~chainer.FunctionNode","`","object","to","the","computational","graph",".","See",":","class",":","`","~chainer.FunctionNode","`","for","the","details","of","building","the","computational","graph","in","Chainer","."]
docstr: Applies forward propagation to input arrays on CPU.
  
  Args:
      inputs: Tuple of :class:`numpy.ndarray` object(s).
  
  Returns:
      tuple: Tuple of :class:`numpy.ndarray` object(s).
  
  .. warning::
  
      Implementations of :class:`Function` must take care that the
      return value must be a tuple even if it returns only one array.
docstr_tok: ["Applies","forward","propagation","to","input","arrays","on","CPU",".","Args",":","inputs",":","Tuple","of",":","class",":","`","numpy.ndarray","`","object","(","s",")",".","Returns",":","tuple",":","Tuple","of",":","class",":","`","numpy.ndarray","`","object","(","s",")",".","..","warning",":",":","Implementations","of",":","class",":","`","Function","`","must","take","care","that","the","return","value","must","be","a","tuple","even","if","it","returns","only","one","array","."]
code: def forward_cpu(self, inputs):
      """Applies forward propagation to input arrays on CPU.
  
      Args:
          inputs: Tuple of :class:`numpy.ndarray` object(s).
  
      Returns:
          tuple: Tuple of :class:`numpy.ndarray` object(s).
  
      .. warning::
  
          Implementations of :class:`Function` must take care that the
          return value must be a tuple even if it returns only one array.
  
      """
      raise NotImplementedError()
  
imports: from __future__ import absolute_import
  import warnings
  import weakref
  import six
  import chainer
  from chainer import backend
  from chainer.backends import cuda
  from chainer import configuration
  from chainer.function_hook import FunctionHook
  from chainer import function_node
  from chainer import variable
  import chainerx
label_desc: Use image node_id 12 for calling the Function obj's underlying member method code with example usage: obj.forward_cpu(inputs) without return types