def back_prop_grad(self, tensors, gradients):
        """
        Back-propagate the gradient of the `tensors` to `gradients`.

        Arguments:
            Tensors (list): List of Tensors to compute gradients.
            Gradient (list): List of Tensors, as output buffers of the
                             Gradients.
        """
        # avoid tensor reused as a grad_buffer
        for grad_buffer in gradients:
            assert(grad_buffer._original_base not in self.map_tensor_grad_op_tree)

        skipped_tensor = None
        for tensor, grad_buffer in zip(tensors, gradients):
            if grad_buffer is self.next_error:
                # next_error reused as a grad_buffer
                skipped_tensor = tensor
            else:
                grad_buffer[:] = self.map_tensor_grad_op_tree.get(
                    tensor._original_base, grad_buffer * 0.)

        if skipped_tensor:
            self.next_error[:] = self.map_tensor_grad_op_tree.get(
                skipped_tensor._original_base, self.next_error * 0.)
dataset/ETHPy150Open NervanaSystems/neon/neon/backends/autodiff.py/Autodiff.back_prop_grad/original