def convert_multilinear_upsample(converter, nnef_op, onnx_graph): # type: (Converter, NNEFOperation, ONNXGraph)->None input, output = converter.converted_tensors((nnef_op.input, nnef_op.output)) if nnef_op.attribs['method'] != 'symmetric': if converter.enable_imprecise_image_resize: print("Warning: method={} is unsupported in multilinear_upsample, " "using symmetric, because enable_imprecise_image_resize was True" .format(nnef_op.attribs["method"])) else: assert False, "Error: method={} is unsupported in multilinear_upsample. " \ "Use enable_imprecise_image_resize=True, to suppress this error." \ .format(nnef_op.attribs["method"]) if nnef_op.attribs['border'] != 'replicate': if converter.enable_imprecise_image_resize: print("Warning: border={} is unsupported in multilinear_upsample, " "using replicate, because enable_imprecise_image_resize was True" .format(nnef_op.attribs["border"])) else: assert False, "Error: border={} is unsupported in multilinear_upsample. " \ "Use enable_imprecise_image_resize=True, to suppress this error." \ .format(nnef_op.attribs["border"]) scales = [float(f) for f in [1, 1] + nnef_op.attribs['factor']] ONNXOperation(graph=onnx_graph, name='Upsample', inputs=(input, converter.constant_1d_tensor(graph=onnx_graph, list_=scales, dtype='FLOAT')), attribs=dict(mode='linear'), outputs=output)
def convert_tile(converter, nnef_op, onnx_graph): # type: (Converter, NNEFOperation, ONNXGraph)->None input, output = converter.converted_tensors((nnef_op.input, nnef_op.output)) ONNXOperation(graph=onnx_graph, name='Tile', inputs=(input, converter.constant_1d_tensor(graph=onnx_graph, list_=nnef_op.attribs['repeats'], dtype='INT64')), outputs=output)
def convert_nearest_upsample(converter, nnef_op, onnx_graph): # type: (Converter, NNEFOperation, ONNXGraph)->None input, output = converter.converted_tensors((nnef_op.input, nnef_op.output)) scales = [float(f) for f in [1, 1] + nnef_op.attribs['factor']] ONNXOperation(graph=onnx_graph, name='Upsample', inputs=(input, converter.constant_1d_tensor(onnx_graph, scales, 'FLOAT')), attribs=dict(mode='nearest'), outputs=output)
def convert_reshape(converter, nnef_op, onnx_graph): # type: (Converter, NNEFOperation, ONNXGraph)->None input, output = converter.converted_tensors((nnef_op.input, nnef_op.output)) shape = nnef_op.attribs['shape'] axis_start = nnef_op.attribs['axis_start'] axis_count = nnef_op.attribs['axis_count'] if axis_count == -1: axis_count = input.rank - axis_start onnx_shape = input.shape[:axis_start] + shape + input.shape[axis_start + axis_count:] ONNXOperation(graph=onnx_graph, name='Reshape', inputs=(input, converter.constant_1d_tensor(graph=onnx_graph, list_=onnx_shape, dtype='INT64')), outputs=output)