From 6e6648b89beabc82a738dd8111eebed978a18ecf Mon Sep 17 00:00:00 2001 From: Haiping Chen Date: Fri, 5 May 2023 06:40:45 -0500 Subject: [PATCH 1/7] EagerResourceDeleter - Attempted to read or write protected memory #1051 --- src/TensorFlowNET.Core/Eager/EagerRunner.TFE_Execute.cs | 2 +- src/TensorFlowNET.Keras/BackendImpl.cs | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/TensorFlowNET.Core/Eager/EagerRunner.TFE_Execute.cs b/src/TensorFlowNET.Core/Eager/EagerRunner.TFE_Execute.cs index 3806b3ad..018ba921 100644 --- a/src/TensorFlowNET.Core/Eager/EagerRunner.TFE_Execute.cs +++ b/src/TensorFlowNET.Core/Eager/EagerRunner.TFE_Execute.cs @@ -42,7 +42,7 @@ namespace Tensorflow.Eager object[] attrs, int num_outputs) { - var status = tf.Status; + var status = new Status(); var op = GetOp(ctx, op_name, status); c_api.TFE_OpSetDevice(op, device_name, status); if (status.ok()) diff --git a/src/TensorFlowNET.Keras/BackendImpl.cs b/src/TensorFlowNET.Keras/BackendImpl.cs index 80403ad6..9059a1d8 100644 --- a/src/TensorFlowNET.Keras/BackendImpl.cs +++ b/src/TensorFlowNET.Keras/BackendImpl.cs @@ -138,9 +138,6 @@ namespace Tensorflow.Keras ops.set_default_session(tf.Session(ops.get_default_graph())); tf.enable_eager_execution(); tf.Runner.ClearEagerOperationMap(); - - GC.Collect(); - GC.WaitForPendingFinalizers(); } public void manual_variable_initialization(bool value) { From 2fed0db7ea0c70d8d9ef93f247a48118b52a3239 Mon Sep 17 00:00:00 2001 From: Haiping Chen Date: Fri, 5 May 2023 10:08:36 -0500 Subject: [PATCH 2/7] Release v0.100.5. --- src/TensorFlowNET.Core/Tensorflow.Binding.csproj | 6 +++--- src/TensorFlowNET.Core/Variables/BaseResourceVariable.cs | 2 +- src/TensorFlowNET.Core/Variables/EagerResourceDeleter.cs | 5 ----- src/TensorFlowNET.Keras/BackendImpl.cs | 3 +++ src/TensorFlowNET.Keras/Tensorflow.Keras.csproj | 6 +++--- 5 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/TensorFlowNET.Core/Tensorflow.Binding.csproj b/src/TensorFlowNET.Core/Tensorflow.Binding.csproj index d6c039c9..09f5b077 100644 --- a/src/TensorFlowNET.Core/Tensorflow.Binding.csproj +++ b/src/TensorFlowNET.Core/Tensorflow.Binding.csproj @@ -5,7 +5,7 @@ Tensorflow.Binding Tensorflow 2.10.0 - 1.0.0 + 0.100.5 10.0 enable Haiping Chen, Meinrad Recheis, Eli Belash @@ -20,7 +20,7 @@ Google's TensorFlow full binding in .NET Standard. Building, training and infering deep learning models. https://tensorflownet.readthedocs.io - 1.0.0.0 + 0.100.5.0 tf.net 0.100.x and above are based on tensorflow native 2.10.0 @@ -38,7 +38,7 @@ https://tensorflownet.readthedocs.io tf.net 0.7x.x aligns with TensorFlow v2.7.x native library. tf.net 0.10x.x aligns with TensorFlow v2.10.x native library. - 1.0.0.0 + 0.100.5.0 LICENSE true packages diff --git a/src/TensorFlowNET.Core/Variables/BaseResourceVariable.cs b/src/TensorFlowNET.Core/Variables/BaseResourceVariable.cs index 52ca328e..b9a7022a 100644 --- a/src/TensorFlowNET.Core/Variables/BaseResourceVariable.cs +++ b/src/TensorFlowNET.Core/Variables/BaseResourceVariable.cs @@ -102,7 +102,7 @@ namespace Tensorflow if (handle is EagerTensor) { _handle = handle.EagerTensorHandle.DangerousGetHandle(); - eager_resource_deleter = new EagerResourceDeleter(handle, handle.Device); + // eager_resource_deleter = new EagerResourceDeleter(handle, handle.Device); } else if(handle is null) { diff --git a/src/TensorFlowNET.Core/Variables/EagerResourceDeleter.cs b/src/TensorFlowNET.Core/Variables/EagerResourceDeleter.cs index 8f3685cc..77bf471b 100644 --- a/src/TensorFlowNET.Core/Variables/EagerResourceDeleter.cs +++ b/src/TensorFlowNET.Core/Variables/EagerResourceDeleter.cs @@ -14,9 +14,6 @@ namespace Tensorflow.Variables _tensor = handle; _handle = handle.EagerTensorHandle.DangerousGetHandle(); _handle_device = handle_device; - - bool success = false; - handle.EagerTensorHandle.DangerousAddRef(ref success); } protected override void DisposeUnmanagedResources(IntPtr handle) @@ -27,8 +24,6 @@ namespace Tensorflow.Variables tf.Runner.TFE_Execute(tf.Context, _handle_device, "DestroyResourceOp", new[] { _tensor }, new object[] { "ignore_lookup_error", true }, 0); - - _tensor.EagerTensorHandle.DangerousRelease(); } } } diff --git a/src/TensorFlowNET.Keras/BackendImpl.cs b/src/TensorFlowNET.Keras/BackendImpl.cs index 9059a1d8..80403ad6 100644 --- a/src/TensorFlowNET.Keras/BackendImpl.cs +++ b/src/TensorFlowNET.Keras/BackendImpl.cs @@ -138,6 +138,9 @@ namespace Tensorflow.Keras ops.set_default_session(tf.Session(ops.get_default_graph())); tf.enable_eager_execution(); tf.Runner.ClearEagerOperationMap(); + + GC.Collect(); + GC.WaitForPendingFinalizers(); } public void manual_variable_initialization(bool value) { diff --git a/src/TensorFlowNET.Keras/Tensorflow.Keras.csproj b/src/TensorFlowNET.Keras/Tensorflow.Keras.csproj index a5254edf..8b3c9265 100644 --- a/src/TensorFlowNET.Keras/Tensorflow.Keras.csproj +++ b/src/TensorFlowNET.Keras/Tensorflow.Keras.csproj @@ -7,7 +7,7 @@ enable Tensorflow.Keras AnyCPU;x64 - 1.0.0 + 0.10.5 Haiping Chen Keras for .NET Apache 2.0, Haiping Chen 2023 @@ -38,8 +38,8 @@ Keras is an API designed for human beings, not machines. Keras follows best prac Git true Open.snk - 1.0.0.0 - 1.0.0.0 + 0.10.5.0 + 0.10.5.0 LICENSE Debug;Release;GPU From 021c7a31e9efbdc5308d67bd0e222b05661de424 Mon Sep 17 00:00:00 2001 From: Yaohui Liu Date: Sat, 6 May 2023 00:19:47 +0800 Subject: [PATCH 3/7] ci: update release ci. --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2f6e9f07..52cc6a98 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,7 +9,7 @@ on: types: [ labeled, opened, reopened, synchronize ] env: - MYGET_API_TOKEN: ${{ SECRETS.RINNE_MYGET_KEY }} + MYGET_API_TOKEN: ${{ SECRETS.MYGET_API_KEY }} GITHUB_TOKEN: ${{ SECRETS.RINNE_GITHUB_TOKEN }} jobs: @@ -94,7 +94,7 @@ jobs: path: './packages' - name: Add myget nuget source - run: dotnet nuget add source https://www.myget.org/F/rinne/api/v2/package --name myget.org + run: dotnet nuget add source https://www.myget.org/F/scisharp/api/v2/package --name myget.org - name: Push TensorFlow.NET to myget.org run: dotnet nuget push .\packages\TensorFlow*.nupkg -s myget.org -k $env:MYGET_API_TOKEN --skip-duplicate From 0a61b0f8cbf01ceb0980bf75fbdcfecb355ecd24 Mon Sep 17 00:00:00 2001 From: Yaohui Liu Date: Sat, 6 May 2023 01:36:44 +0800 Subject: [PATCH 4/7] ci: fix error of release ci. --- .github/workflows/release.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 52cc6a98..5b9ff028 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -93,8 +93,5 @@ jobs: name: "drop-ci-packages" path: './packages' - - name: Add myget nuget source - run: dotnet nuget add source https://www.myget.org/F/scisharp/api/v2/package --name myget.org - - name: Push TensorFlow.NET to myget.org - run: dotnet nuget push .\packages\TensorFlow*.nupkg -s myget.org -k $env:MYGET_API_TOKEN --skip-duplicate + run: dotnet nuget push .\packages\TensorFlow*.nupkg --source https://www.myget.org/F/scisharp/api/v3/index.json -k $env:MYGET_API_TOKEN --skip-duplicate From 541c38b243cc5c0c401cc47891557fe31178a03c Mon Sep 17 00:00:00 2001 From: Yaohui Liu Date: Sat, 6 May 2023 02:02:08 +0800 Subject: [PATCH 5/7] ci: revise release ci. --- .github/workflows/release.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5b9ff028..ce5ce8e6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -93,5 +93,8 @@ jobs: name: "drop-ci-packages" path: './packages' + - name: test temp + run: echo $env:MYGET_API_TOKEN + - name: Push TensorFlow.NET to myget.org run: dotnet nuget push .\packages\TensorFlow*.nupkg --source https://www.myget.org/F/scisharp/api/v3/index.json -k $env:MYGET_API_TOKEN --skip-duplicate From ffcc16c86faedabdbfc3ad8a4f669982a2dde561 Mon Sep 17 00:00:00 2001 From: Yaohui Liu Date: Sat, 6 May 2023 02:28:45 +0800 Subject: [PATCH 6/7] ci: revise release ci. --- .github/workflows/release.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ce5ce8e6..887c8bbc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -93,8 +93,5 @@ jobs: name: "drop-ci-packages" path: './packages' - - name: test temp - run: echo $env:MYGET_API_TOKEN - - name: Push TensorFlow.NET to myget.org - run: dotnet nuget push .\packages\TensorFlow*.nupkg --source https://www.myget.org/F/scisharp/api/v3/index.json -k $env:MYGET_API_TOKEN --skip-duplicate + run: dotnet nuget push .\packages\TensorFlow*.nupkg --source https://www.myget.org/F/scisharp/api/v3/index.json --api-key ${{ secrets.MYGET_API_KEY }} --skip-duplicate From 525cb084c8a32639d24fa79cae2e9514146a584e Mon Sep 17 00:00:00 2001 From: Yaohui Liu Date: Sat, 6 May 2023 03:11:06 +0800 Subject: [PATCH 7/7] ci: revise release ci. --- .github/workflows/release.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 887c8bbc..073e6e1f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -93,5 +93,8 @@ jobs: name: "drop-ci-packages" path: './packages' + - name: test temp + run: echo "auth_token length ${#auth_token}" + - name: Push TensorFlow.NET to myget.org - run: dotnet nuget push .\packages\TensorFlow*.nupkg --source https://www.myget.org/F/scisharp/api/v3/index.json --api-key ${{ secrets.MYGET_API_KEY }} --skip-duplicate + run: dotnet nuget push .\packages\TensorFlow*.nupkg --source https://www.myget.org/F/scisharp/api/v3/index.json -k ${{ secrets.MYGET_API_KEY }} --skip-duplicate