code: def test_compute_averaged_norm_for_blobs(self):
      model = model_helper.ModelHelper(name="test")
      data = model.net.AddExternalInput("data")
      fc1 = brew.fc(model, data, "fc1", dim_in=4, dim_out=2)
  
      # no operator name set, will use default
      brew.fc(model, fc1, "fc2", dim_in=2, dim_out=1)
  
      net_modifier = ComputeNormForBlobs(
          blobs=["fc1_w", "fc2_w"],
          logging_frequency=10,
          compute_averaged_norm=True,
      )
  
      net_modifier(model.net)
  
      workspace.FeedBlob(
          "data", np.random.rand(10, 4).astype(np.float32)
      )
  
      workspace.RunNetOnce(model.param_init_net)
      workspace.RunNetOnce(model.net)
  
      fc1_w = workspace.FetchBlob("fc1_w")
      fc1_w_averaged_l2_norm = workspace.FetchBlob(
          "fc1_w_averaged_l2_norm"
      )
  
      self.assertEqual(fc1_w_averaged_l2_norm.size, 1)
      self.assertAlmostEqual(
          fc1_w_averaged_l2_norm[0],
          np.linalg.norm(fc1_w) ** 2 / fc1_w.size,
          delta=1e-5,
      )
  
      self.assertEqual(len(model.net.Proto().op), 10)
  
file_path: pytorch/caffe2/python/modeling/compute_norm_for_blobs_test.py
imports: import unittest
  from caffe2.python import workspace, brew, model_helper
  from caffe2.python.modeling.compute_norm_for_blobs import ComputeNormForBlobs
  import numpy
label_desc: Use image node_id 3 for calling the ComputeNormForBlobsTest obj's underlying member method code with example usage: obj.test_compute_averaged_norm_for_blobs() without return types