From ec5c9db932c708fe865efabba7861c0f8e17fac3 Mon Sep 17 00:00:00 2001 From: Evgenya Stepyreva Date: Thu, 28 May 2020 14:00:42 +0300 Subject: [PATCH] [ MO ] Memory usage (#657) --- model-optimizer/mo/back/ie_ir_ver_2/emitter.py | 5 +++-- model-optimizer/mo/front/common/partial_infer/concat.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/model-optimizer/mo/back/ie_ir_ver_2/emitter.py b/model-optimizer/mo/back/ie_ir_ver_2/emitter.py index 46390b4..4e1c51d 100644 --- a/model-optimizer/mo/back/ie_ir_ver_2/emitter.py +++ b/model-optimizer/mo/back/ie_ir_ver_2/emitter.py @@ -61,8 +61,9 @@ def serialize_constants_recursively(graph: Graph, bin_file, data_type, bin_hashe node = Node(graph, node) if node.kind == 'data' and node.value is not None and any('bin' in d for u, v, d in graph.out_edges(node.node, data=True)): - blob = node.value - blob_hash = hashlib.sha512(blob.tobytes()).hexdigest() + # avoid array copying while taking hash + blob = node.value if node.value.ndim > 0 else node.value.reshape((1)) + blob_hash = hashlib.sha512(np.ascontiguousarray(blob).view(np.uint8)).hexdigest() if blob_hash in bin_hashes and np.array_equal(blob, bin_hashes[blob_hash]['blob']): graph.node[node.node]['offset'] = bin_hashes[blob_hash]['offset'] diff --git a/model-optimizer/mo/front/common/partial_infer/concat.py b/model-optimizer/mo/front/common/partial_infer/concat.py index 7e0f2dc..6addde9 100644 --- a/model-optimizer/mo/front/common/partial_infer/concat.py +++ b/model-optimizer/mo/front/common/partial_infer/concat.py @@ -69,7 +69,7 @@ def concat_infer(node): if any(v is None for v in values): return - node.out_node(0).value = np.array(np.concatenate(values, axis=node.axis), dtype=values[0].dtype) + node.out_node(0).value = np.concatenate(values, axis=node.axis).astype(values[0].dtype, copy=False) node.out_node(0).shape = np.array(node.out_node(0).value.shape, dtype=np.int64) -- 2.7.4