in onnxconverter_common/optimizer.py [0:0]
def generate(self):
updated = False
if self.attributes:
updated = True
elif len([k for k, v in self.input.items() if k != v]) > 0:
updated = True
elif len([k for k, v in self.output.items() if k != v]) > 0:
updated = True
if not updated:
return [self.origin]
else:
onode = onnx_proto.NodeProto()
onode.name = self.origin.name
onode.op_type = self.origin.op_type
onode.input.extend([self.input.get(i_, i_) for i_ in self.origin.input])
for input_ in self.initializers:
if input_.name not in onode.input:
onode.input.append(input_.name)
onode.output.extend([self.output.get(o_, o_) for o_ in self.origin.output])
onode.doc_string = self.origin.doc_string
onode.domain = self.origin.domain
onode.attribute.extend(
attr for attr in self.origin.attribute if attr.name not in self.attributes)
onode.attribute.extend(
helper.make_attribute(attr, self.attributes[attr]) for attr in self.attributes)
return [onode]