コード例 #1
0
ファイル: onnx_run_tf.py プロジェクト: shas19/EzPC
def main():
    # First read the ONNX file
    if (len(sys.argv) < 2):
        print("TF python file unspecified.", file=sys.stderr)
        exit(1)

    file_name = sys.argv[1]
    file_path = 'models/' + file_name
    model_name = file_name[:-5]  # name without the '.onnx' extension
    model = onnx.load(file_path)
    model = preprocess_for_tf(model)

    x = np.load('debug/' + model_name + '/' + model_name + '_input.npy')
    x = x.astype(np.float32)

    input_name = model.graph.input[0].name
    output_name = model.graph.output[0].name

    if (len(sys.argv) > 2):
        intermediate_layer_value_info = helper.ValueInfoProto()
        intermediate_layer_value_info_name = 'tf_' + sys.argv[2]
        intermediate_layer_value_info = helper.make_tensor_value_info(
            intermediate_layer_value_info_name, TensorProto.FLOAT, [])
        model.graph.output.extend([intermediate_layer_value_info])
        output = prepare(model).run(x)
        pred = getattr(output, intermediate_layer_value_info_name)
        np.save('debug/' + model_name + '/' + model_name + '_debug', pred)
        with open('debug/onnx_debug.txt', 'w') as f:
            f.write(common.numpy_float_array_to_float_val_str(pred))
        print("Saving the onnx runtime intermediate output for " +
              intermediate_layer_value_info.name)
        exit()

    output = prepare(model).run(x)
    pred = getattr(output, output_name)
    np.save('debug/' + model_name + '/' + model_name + '_output', pred)
    with open('debug/onnx_output.txt', 'w') as f:
        f.write(common.numpy_float_array_to_float_val_str(pred))
    output_dims = common.proto_val_to_dimension_tuple(model.graph.output[0])
    print("Saving the onnx runtime output of dimension " + str(output_dims))
コード例 #2
0
ファイル: onnx_run.py プロジェクト: rasswanth-s/EzPC
file_name = sys.argv[1]
file_path = 'models/' + file_name
model_name = file_name[:-5] # name without the '.onnx' extension
model = onnx.load(file_path)
sess = onnxruntime.InferenceSession(file_path) 

x = np.load('debug/' + model_name + '/' + model_name + '_input.npy')
x = x.astype(np.float32)

input_name = model.graph.input[0].name

if (len(sys.argv) > 2):
	intermediate_layer_value_info = helper.ValueInfoProto()
	intermediate_layer_value_info.name = sys.argv[2]
	model.graph.output.extend([intermediate_layer_value_info])
	onnx.save(model, file_path + '_1')
	sess = onnxruntime.InferenceSession(file_path + '_1') 
	pred = sess.run([intermediate_layer_value_info.name], {input_name: x})
	np.save('debug/' + model_name + '/' + model_name + '_debug', pred)
	with open('debug/onnx_debug.txt', 'w') as f:
		f.write(common.numpy_float_array_to_float_val_str(pred))
	print("Saving the onnx runtime intermediate output for " + intermediate_layer_value_info.name)
	exit() 

pred = sess.run(None, {input_name: x})
np.save('debug/' + model_name + '/' + model_name + '_output', pred)
with open('debug/onnx_output.txt', 'w') as f:
		f.write(common.numpy_float_array_to_float_val_str(pred))
output_dims = common.proto_val_to_dimension_tuple(model.graph.output[0])
print("Saving the onnx runtime output of dimension " + str(output_dims))