class_docstr: ColoProxy is a proxy class which uses meta tensor to handle data-dependent control flow. The original torch.fx proxy
  cannot be used to infer the condition statement, with this proxy, torch.fx can still run even with if statements.
  
  Example::
  
      proxy = tracer.create_proxy(...)
      proxy.meta_data = torch.empty(4, 2, device='meta')
      print(len(proxy)) # expect output 4
class_docstr_tok: ["ColoProxy","is","a","proxy","class","which","uses","meta","tensor","to","handle","data-dependent","control","flow",".","The","original","torch.fx","proxy","can","not","be","used","to","infer","the","condition","statement",",","with","this","proxy",",","torch.fx","can","still","run","even","with","if","statements",".","Example",":",":","proxy","=","tracer.create_proxy","(","...",")","proxy.meta_data","=","torch.empty","(","4",",","2",",","device='meta","'",")","print","(","len","(","proxy",")",")","#","expect","output","4"]
code: def __getattr__(self, k):
      return ColoAttribute(self, k)
  
imports: from typing import Any
  import torch
  from torch.fx.proxy import Proxy
  from colossalai.fx.tracer.meta_patch import meta_patched_function
label_desc: Use image node_id 11 for calling the ColoProxy obj's underlying member method code with example usage: obj.__getattr__(k) and returns: ColoAttribute