code: def main():
      # Self-Attention
      a1 = Attention(dim=512, num_heads=1)
      a1.proj = torch.nn.Identity()  # remove Wo
  
      # Multi-Head Attention
      a2 = Attention(dim=512, num_heads=8)
  
      # [batch_size, num_tokens, total_embed_dim]
      t = (torch.rand(32, 1024, 512),)
  
      flops1 = FlopCountAnalysis(a1, t)
      print("Self-Attention FLOPs:", flops1.total())
  
      flops2 = FlopCountAnalysis(a2, t)
      print("Multi-Head Attention FLOPs:", flops2.total())
  
label_desc: Use image node_id 1 for calling a global function with example usage: main() without return types