code: def backward_impl(self, inputs, outputs, propagate_down=[], accum=[]):
      if not propagate_down[0]:
          return
  
      dy = inputs[0].data
      x0 = inputs[1].data
      dw0 = outputs[0].data
  
      gdy = inputs[0].grad
      gx0 = inputs[1].grad
      gdw0 = outputs[0].grad
  
      inputs_fwd, outputs_fwd = self._create_fwd_inputs_outputs(
          inputs, outputs
      )
      vx = inputs_fwd[0].apply(need_grad=False)
      vw = inputs_fwd[1].apply(need_grad=False)
      vy = outputs_fwd[0]
  
      # w.r.t. x0
      # do nothing since x0 is the index.
  
      # w.r.t. dy
      vx.data = x0
      vw.data = gdw0
      if accum[0]:
          self._linear.forward(inputs_fwd, outputs_fwd)
          gdy += vy.data
      else:
          vy.data = gdy
          self._linear.forward(inputs_fwd, outputs_fwd)
  
file_path: nnabla/python/src/nnabla/backward_function/embed.py
imports: import nnabla
  import nnabla.function
  import nnabla.functions
  from .backward_function import LinearFilterGrad
label_desc: Use image node_id 2 for calling the EmbedFilterGrad obj's underlying member method code with example usage: obj.backward_impl(inputs, outputs, propagate_down, accum) without return types