code: def test_name_number(self):
      net = MyNetWork()
  
      ## fc1 and fc2 have different parameters
      self.assertEqual(net.fc1.param_name, "fc.w_0")
      self.assertEqual(net.fc2.param_name, "fc.w_1")
  
      ## fc3 has no bias and fc4 has no param; so the names are None
      self.assertEqual(net.fc3.bias_name, None)
      self.assertEqual(net.fc4.param_name, None)
      self.assertEqual(net.fc4.bias_name, "fc.b_3")
  
      ## fc5 has a custom name without a bias
      self.assertEqual(net.fc5.param_name, "fc.w_4")
      self.assertEqual(net.fc5.bias_name, None)
  
      self.assertEqual(net.fc6.param_name, "fc.w_5")
  
      ## embedding layer has no bias
      self.assertEqual(net.embedding.param_name, "embedding.w_0")
      self.assertEqual(net.embedding.bias_name, None)
  
      ## embedding layer with a custom name
      self.assertEqual(
          net.embedding_custom.param_name, "embedding_custom.w_0"
      )
  
      ## conv2d shares param with embedding; has a custom bias name
      self.assertEqual(net.conv2d.param_name, "embedding.w_0")
      self.assertEqual(net.conv2d.bias_name, "my_conv2d.b_0")
  
      self.assertSetEqual(
          set(net.batch_norm.all_params_names),
          set(
              [
                  "batch_norm.w_0",
                  "batch_norm.b_0",
                  "batch_norm_moving_mean.w_0",
                  "batch_norm_moving_variance.w_0",
              ]
          ),
      )
  
file_path: PARL/parl/core/fluid/layers/tests/param_name_test_fluid.py
imports: import parl
  from paddle import fluid
  from parl import layers
  import unittest
label_desc: Use image node_id 1 for calling the TestParamName obj's underlying member method code with example usage: obj.test_name_number() without return types