From 523ccf041ac3a972886e8b8e5d5be5ad4497b54c Mon Sep 17 00:00:00 2001 From: rockstarr <41538890+miknyko@users.noreply.github.com> Date: Thu, 25 Nov 2021 16:22:23 +0800 Subject: [PATCH 1/3] fix path error in export.py --- export.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/export.py b/export.py index 35875f1fb0d3..101b8fa5e49e 100644 --- a/export.py +++ b/export.py @@ -71,7 +71,7 @@ def export_torchscript(model, im, file, optimize, prefix=colorstr('TorchScript:' ts = torch.jit.trace(model, im, strict=False) d = {"shape": im.shape, "stride": int(max(model.stride)), "names": model.names} extra_files = {'config.txt': json.dumps(d)} # torch._C.ExtraFilesMap() - (optimize_for_mobile(ts) if optimize else ts).save(f, _extra_files=extra_files) + (optimize_for_mobile(ts) if optimize else ts).save(str(f), _extra_files=extra_files) LOGGER.info(f'{prefix} export success, saved as {f} ({file_size(f):.1f} MB)') except Exception as e: @@ -87,7 +87,7 @@ def export_onnx(model, im, file, opset, train, dynamic, simplify, prefix=colorst LOGGER.info(f'\n{prefix} starting export with onnx {onnx.__version__}...') f = file.with_suffix('.onnx') - torch.onnx.export(model, im, f, verbose=False, opset_version=opset, + torch.onnx.export(model, im, str(f), verbose=False, opset_version=opset, training=torch.onnx.TrainingMode.TRAINING if train else torch.onnx.TrainingMode.EVAL, do_constant_folding=not train, input_names=['images'], @@ -97,7 +97,7 @@ def export_onnx(model, im, file, opset, train, dynamic, simplify, prefix=colorst } if dynamic else None) # Checks - model_onnx = onnx.load(f) # load onnx model + model_onnx = onnx.load(str(f)) # load onnx model onnx.checker.check_model(model_onnx) # check onnx model # LOGGER.info(onnx.helper.printable_graph(model_onnx.graph)) # print @@ -113,7 +113,7 @@ def export_onnx(model, im, file, opset, train, dynamic, simplify, prefix=colorst dynamic_input_shape=dynamic, input_shapes={'images': list(im.shape)} if dynamic else None) assert check, 'assert check failed' - onnx.save(model_onnx, f) + onnx.save(model_onnx, str(f)) except Exception as e: LOGGER.info(f'{prefix} simplifier failure: {e}') LOGGER.info(f'{prefix} export success, saved as {f} ({file_size(f):.1f} MB)') @@ -135,7 +135,7 @@ def export_coreml(model, im, file, prefix=colorstr('CoreML:')): model.train() # CoreML exports should be placed in model.train() mode ts = torch.jit.trace(model, im, strict=False) # TorchScript model ct_model = ct.convert(ts, inputs=[ct.ImageType('image', shape=im.shape, scale=1 / 255, bias=[0, 0, 0])]) - ct_model.save(f) + ct_model.save(str(f)) LOGGER.info(f'{prefix} export success, saved as {f} ({file_size(f):.1f} MB)') except Exception as e: @@ -189,7 +189,7 @@ def export_pb(keras_model, im, file, prefix=colorstr('TensorFlow GraphDef:')): m = m.get_concrete_function(tf.TensorSpec(keras_model.inputs[0].shape, keras_model.inputs[0].dtype)) frozen_func = convert_variables_to_constants_v2(m) frozen_func.graph.as_graph_def() - tf.io.write_graph(graph_or_graph_def=frozen_func.graph, logdir=str(f.parent), name=f.name, as_text=False) + tf.io.write_graph(graph_or_graph_def=frozen_func.graph, logdir=str(str(f.parent)), name=f.name, as_text=False) LOGGER.info(f'{prefix} export success, saved as {f} ({file_size(f):.1f} MB)') except Exception as e: From 8b03527ed9f2969efcfe88341abb587b7cbd2551 Mon Sep 17 00:00:00 2001 From: rockstarr <41538890+miknyko@users.noreply.github.com> Date: Thu, 25 Nov 2021 17:59:03 +0800 Subject: [PATCH 2/3] Update export.py updated! --- export.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/export.py b/export.py index 101b8fa5e49e..fd7e10f77865 100644 --- a/export.py +++ b/export.py @@ -97,7 +97,7 @@ def export_onnx(model, im, file, opset, train, dynamic, simplify, prefix=colorst } if dynamic else None) # Checks - model_onnx = onnx.load(str(f)) # load onnx model + model_onnx = onnx.load(f) # load onnx model onnx.checker.check_model(model_onnx) # check onnx model # LOGGER.info(onnx.helper.printable_graph(model_onnx.graph)) # print @@ -113,7 +113,7 @@ def export_onnx(model, im, file, opset, train, dynamic, simplify, prefix=colorst dynamic_input_shape=dynamic, input_shapes={'images': list(im.shape)} if dynamic else None) assert check, 'assert check failed' - onnx.save(model_onnx, str(f)) + onnx.save(model_onnx, f) except Exception as e: LOGGER.info(f'{prefix} simplifier failure: {e}') LOGGER.info(f'{prefix} export success, saved as {f} ({file_size(f):.1f} MB)') @@ -135,7 +135,7 @@ def export_coreml(model, im, file, prefix=colorstr('CoreML:')): model.train() # CoreML exports should be placed in model.train() mode ts = torch.jit.trace(model, im, strict=False) # TorchScript model ct_model = ct.convert(ts, inputs=[ct.ImageType('image', shape=im.shape, scale=1 / 255, bias=[0, 0, 0])]) - ct_model.save(str(f)) + ct_model.save(f) LOGGER.info(f'{prefix} export success, saved as {f} ({file_size(f):.1f} MB)') except Exception as e: @@ -189,7 +189,7 @@ def export_pb(keras_model, im, file, prefix=colorstr('TensorFlow GraphDef:')): m = m.get_concrete_function(tf.TensorSpec(keras_model.inputs[0].shape, keras_model.inputs[0].dtype)) frozen_func = convert_variables_to_constants_v2(m) frozen_func.graph.as_graph_def() - tf.io.write_graph(graph_or_graph_def=frozen_func.graph, logdir=str(str(f.parent)), name=f.name, as_text=False) + tf.io.write_graph(graph_or_graph_def=frozen_func.graph, logdir=str(f.parent), name=f.name, as_text=False) LOGGER.info(f'{prefix} export success, saved as {f} ({file_size(f):.1f} MB)') except Exception as e: From 5b3e8621fdcc07a37cbfcf670dac9753f1b49f88 Mon Sep 17 00:00:00 2001 From: rockstarr <41538890+miknyko@users.noreply.github.com> Date: Thu, 25 Nov 2021 18:01:12 +0800 Subject: [PATCH 3/3] Update export.py oops forget something --- export.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/export.py b/export.py index fd7e10f77865..9d6d04967c80 100644 --- a/export.py +++ b/export.py @@ -87,7 +87,7 @@ def export_onnx(model, im, file, opset, train, dynamic, simplify, prefix=colorst LOGGER.info(f'\n{prefix} starting export with onnx {onnx.__version__}...') f = file.with_suffix('.onnx') - torch.onnx.export(model, im, str(f), verbose=False, opset_version=opset, + torch.onnx.export(model, im, f, verbose=False, opset_version=opset, training=torch.onnx.TrainingMode.TRAINING if train else torch.onnx.TrainingMode.EVAL, do_constant_folding=not train, input_names=['images'],