code: def test_resnet_blocks(self):
      # Resnet101
      model = torchvision.models.resnet101()
  
      transforms = [
          # Fold Conv, BN, RELU layers into one
          ht.Fold("Conv > BatchNormalization > Relu", "ConvBnRelu"),
          # Fold Conv, BN layers together
          ht.Fold("Conv > BatchNormalization", "ConvBn"),
          # Fold bottleneck blocks
          ht.Fold(
              """
                  ((ConvBnRelu > ConvBnRelu > ConvBn) | ConvBn) > Add > Relu
                  """,
              "BottleneckBlock",
              "Bottleneck Block",
          ),
          # Fold residual blocks
          ht.Fold(
              """ConvBnRelu > ConvBnRelu > ConvBn > Add > Relu""",
              "ResBlock",
              "Residual Block",
          ),
          # Fold repeated blocks
          ht.FoldDuplicates(),
      ]
  
      # Display graph using the transforms above
      g = hl.build_graph(
          model, torch.zeros([1, 3, 224, 224]), transforms=transforms
      )
      g.save(os.path.join(OUTPUT_DIR, "pytorch_resnet_bloks.pdf"))
  
      # Clean up
      shutil.rmtree(OUTPUT_DIR)
  
file_path: hiddenlayer/tests/test_pytorch_graph.py
imports: import os
  import sys
  import shutil
  import unittest
  import torch
  import torchvision.models
  import hiddenlayer
  from hiddenlayer import transforms
label_desc: Use image node_id 2 for calling the TestPytorchGraph obj's underlying member method code with example usage: obj.test_resnet_blocks() without return types