code: def test_simple_replace(self):
      net = core.Net("name")
      net.FC(["X", "W"], ["Y"])
      nn = ng.NNModule(net)
      fc = nn.controlFlow[0]
      add = nn.createNode(
          core.CreateOperator("Add", ["X"], ["Y"], engine="CUDNN")
      )
      nn.replaceNode(fc, add)
      nn.deleteNode(fc)
  
      # Test it out
      new_netdef = nn.convertToCaffe2Proto()
      workspace.ResetWorkspace()
      workspace.FeedBlob("X", np.array([1, 2, 3]))
      workspace.FeedBlob("W", np.array([1, 2, 3]))
      workspace.RunNetOnce(new_netdef)
      out = workspace.FetchBlob("Y")
      expected_out = np.array([2, 4, 6])
      np.testing.assert_almost_equal(out, expected_out)
  
file_path: pytorch/caffe2/python/nomnigraph_transformations_test.py
imports: from caffe2.python import core, workspace
  from caffe2.python import test_util
  import caffe2.python.nomnigraph
  from caffe2.python.nomnigraph_transformations import transpose_network
  import numpy
  from hypothesis import given
  import hypothesis.strategies
label_desc: Use image node_id 1 for calling the TestNomnigraphTransformations obj's underlying member method code with example usage: obj.test_simple_replace() without return types