From 2f29995d146f8d6f878be98ce50b00daa044cfba Mon Sep 17 00:00:00 2001 From: haiping008 Date: Wed, 27 Mar 2019 15:13:45 -0500 Subject: [PATCH] fixed Tensor memory leak. --- src/TensorFlowNET.Core/Sessions/BaseSession.cs | 5 +++-- src/TensorFlowNET.Core/Tensors/Tensor.Creation.cs | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/TensorFlowNET.Core/Sessions/BaseSession.cs b/src/TensorFlowNET.Core/Sessions/BaseSession.cs index 6d1977a8..530a0107 100644 --- a/src/TensorFlowNET.Core/Sessions/BaseSession.cs +++ b/src/TensorFlowNET.Core/Sessions/BaseSession.cs @@ -186,9 +186,10 @@ namespace Tensorflow var result = new NDArray[fetch_list.Length]; for (int i = 0; i < fetch_list.Length; i++) - { result[i] = fetchValue(output_values[i]); - } + + for (int i = 0; i < feed_dict.Length; i++) + feed_dict[i].Value.Dispose(); return result; } diff --git a/src/TensorFlowNET.Core/Tensors/Tensor.Creation.cs b/src/TensorFlowNET.Core/Tensors/Tensor.Creation.cs index d31ec927..5998ead3 100644 --- a/src/TensorFlowNET.Core/Tensors/Tensor.Creation.cs +++ b/src/TensorFlowNET.Core/Tensors/Tensor.Creation.cs @@ -111,7 +111,7 @@ namespace Tensorflow // Free the original buffer and set flag Deallocator deallocator = (IntPtr values, IntPtr len, ref bool closure) => { - Marshal.FreeHGlobal(dotHandle); + Marshal.FreeHGlobal(values); closure = true; };