docstr: Since Sum is used in accumulating gradients, we will test if
  it is OK to also explicitly use it in the graph.
code: def testGradientMappingUsingSumOp(self):
      """Since Sum is used in accumulating gradients, we will test if
      it is OK to also explicitly use it in the graph."""
      operators = [
          CreateOperator("FC", ["in", "w", "b"], "fc"),
          CreateOperator("Sum", "fc", "agg"),
          CreateOperator("AveragedLoss", "agg", "loss"),
      ]
      # This should run correctly.
      gradient_ops, _ = GradientRegistry.GetBackwardPass(
          operators, {"loss": "loss_grad"}
      )
      for s in gradient_ops:
          print(str(s))
  
imports: from hypothesis import given, settings
  import hypothesis.strategies
  import unittest
  from caffe2.proto import caffe2_pb2
  from caffe2.python import core, test_util, workspace
  from caffe2.python.core import CreateOperator, GradientRegistry, IR
  import numpy
label_desc: Use image node_id 18 for calling the TestGradientCalculation obj's underlying member method code with example usage: obj.testGradientMappingUsingSumOp() without return types