class_docstr: Reimplementation of NodeProto from ONNX, but in a form
  more convenient to work with from Python.
  
  We may temporarily edit these nodes to get them into Caffe2 form,
  before actually translating into the Caffe2 protobuf, since this
  is easier than decomposing everything, and putting it back together
  when we're ready.
class_docstr_tok: ["Reimplementation","of","NodeProto","from","ONNX",",","but","in","a","form","more","convenient","to","work","with","from","Python",".","We","may","temporarily","edit","these","nodes","to","get","them","into","Caffe2","form",",","before","actually","translating","into","the","Caffe2","protobuf",",","since","this","is","easier","than","decomposing","everything",",","and","putting","it","back","together","when","we","'re","ready","."]
code: def __init__(self, node):
      self.name = str(node.name)
      self.op_type = str(node.op_type)
      self.attrs = OnnxAttributes.from_onnx(node.attribute)
      self.inputs = list(node.input)
      self.outputs = list(node.output)
  
imports: import collections
  import sys
  import zipfile
  import itertools
  import onnx.backend
  from caffe2.python import core, workspace, rnn_cell, gru_cell
  from caffe2.python.model_helper import ModelHelper
  from caffe2.proto import caffe2_pb2
  import caffe2.python.utils
  import numpy
  import onnx
  from onnx import TensorProto
  import onnx.numpy_helper
  import onnx.defs
  import onnx.shape_inference
  import onnx.utils
  from onnx.backend.base import Backend, Device, DeviceType, namedtupledict
  from caffe2.python.onnx.workspace import Workspace
  from caffe2.python.onnx.backend_rep import Caffe2Rep
  import caffe2.python._import_c_extension
  import warnings
label_desc: Use image node_id 1 to create a new OnnxNode object  with example: obj = OnnxNode(node)