code: def from_protobuf(cls, obj):
      self = cls()
      self.name = obj.name
      self.type = str(obj.type).split(".")[1]
      self.start_ns = obj.start_ns
      self.end_ns = obj.end_ns
      self.process_id = obj.process_id
      self.thread_id = obj.thread_id
      self.correlation_id = obj.correlation_id
      self.input_shapes = obj.input_shapes
      self.dtypes = obj.dtypes
      self.callstack = obj.callstack
      self.children_node = []
      self.runtime_node = []
      self.device_node = []
      self.mem_node = []
      return self
  
imports: import collections
  import functools
  import json
  import re
  import sys
  import tempfile
  from .utils import traverse_tree
label_desc: Use image node_id 3 for calling the HostNode obj's underlying member method code with example usage: obj.from_protobuf(cls, obj) and returns: self