code: def test_conv_planes(self):
      num_classes = 10
      in_plane = 3
      conv_planes = 5
      batch_size = 2
      image_size = 4
      head_config = {
          "name": "fully_connected",
          "unique_id": "asd",
          "in_plane": in_plane,
          "conv_planes": conv_planes,
          "num_classes": num_classes,
      }
      head = build_head(head_config)
      self.assertIsInstance(head, FullyConnectedHead)
  
      # specify an activation
      head_config["activation"] = "relu"
      head = build_head(head_config)
  
      # make sure that the head runs and returns the expected dimensions
      input = torch.rand([batch_size, in_plane, image_size, image_size])
      output = head(input)
      self.assertEqual(output.shape, (batch_size, num_classes))
  
file_path: ClassyVision/test/heads_fully_connected_head_test.py
imports: import copy
  from functools import partial
  import torch
  from classy_vision.generic.util import get_torch_version
  from classy_vision.heads import build_head
  from classy_vision.heads.fully_connected_head import FullyConnectedHead
  from test.generic.utils import ClassyTestCase
label_desc: Use image node_id 3 for calling the TestFullyConnectedHead obj's underlying member method code with example usage: obj.test_conv_planes() without return types