From d5d5a46ba358afbdef98ca501b6745e64d1d7571 Mon Sep 17 00:00:00 2001 From: Bo Peng Date: Thu, 20 Jun 2019 11:01:51 -0500 Subject: [PATCH 1/2] fix bug in normal distribution: _log_prob --- TensorFlow.NET.sln | 10 ++++++++-- .../Operations/Distributions/normal.py.cs | 2 +- src/TensorFlowNET.Core/TensorFlowNET.Core.csproj | 10 ++++++++++ .../BasicModels/NaiveBayesClassifier.cs | 5 ++++- .../TensorFlowNET.Examples.csproj | 6 ++++++ 5 files changed, 29 insertions(+), 4 deletions(-) diff --git a/TensorFlow.NET.sln b/TensorFlow.NET.sln index 51125309e..29ecf84bc 100644 --- a/TensorFlow.NET.sln +++ b/TensorFlow.NET.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.28803.452 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.168 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TensorFlowNET.UnitTest", "test\TensorFlowNET.UnitTest\TensorFlowNET.UnitTest.csproj", "{029A8CF1-CF95-4DCB-98AA-9D3D96A83B3E}" EndProject @@ -17,6 +17,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Keras.UnitTest", "test\Kera EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "TensorFlowNET.Examples.FSharp", "test\TensorFlowNET.Examples.FSharp\TensorFlowNET.Examples.FSharp.fsproj", "{62BC3801-F0D3-44A9-A0AC-712F40C8F961}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NumSharp.Core", "..\NumSharp\src\NumSharp.Core\NumSharp.Core.csproj", "{E038A3C1-9055-4BF4-BE5B-0E7D661A7EB3}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -51,6 +53,10 @@ Global {62BC3801-F0D3-44A9-A0AC-712F40C8F961}.Debug|Any CPU.Build.0 = Debug|Any CPU {62BC3801-F0D3-44A9-A0AC-712F40C8F961}.Release|Any CPU.ActiveCfg = Release|Any CPU {62BC3801-F0D3-44A9-A0AC-712F40C8F961}.Release|Any CPU.Build.0 = Release|Any CPU + {E038A3C1-9055-4BF4-BE5B-0E7D661A7EB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E038A3C1-9055-4BF4-BE5B-0E7D661A7EB3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E038A3C1-9055-4BF4-BE5B-0E7D661A7EB3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E038A3C1-9055-4BF4-BE5B-0E7D661A7EB3}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/TensorFlowNET.Core/Operations/Distributions/normal.py.cs b/src/TensorFlowNET.Core/Operations/Distributions/normal.py.cs index 4c69fabab..29cefda16 100644 --- a/src/TensorFlowNET.Core/Operations/Distributions/normal.py.cs +++ b/src/TensorFlowNET.Core/Operations/Distributions/normal.py.cs @@ -82,7 +82,7 @@ public Tensor _batch_shape() protected override Tensor _log_prob(Tensor x) { - var log_prob = _log_unnormalized_prob(_z(x)); + var log_prob = _log_unnormalized_prob(x); var log_norm = _log_normalization(); return tf.sub(log_prob, log_norm); } diff --git a/src/TensorFlowNET.Core/TensorFlowNET.Core.csproj b/src/TensorFlowNET.Core/TensorFlowNET.Core.csproj index 1cca840f8..71ae49c0b 100644 --- a/src/TensorFlowNET.Core/TensorFlowNET.Core.csproj +++ b/src/TensorFlowNET.Core/TensorFlowNET.Core.csproj @@ -62,4 +62,14 @@ Docs: https://tensorflownet.readthedocs.io + + + + + + + ..\..\..\..\NumSharp\src\NumSharp.Core\bin\Debug\netstandard2.0\NumSharp.Core.dll + + + diff --git a/test/TensorFlowNET.Examples/BasicModels/NaiveBayesClassifier.cs b/test/TensorFlowNET.Examples/BasicModels/NaiveBayesClassifier.cs index e1615035f..9555bcbc7 100644 --- a/test/TensorFlowNET.Examples/BasicModels/NaiveBayesClassifier.cs +++ b/test/TensorFlowNET.Examples/BasicModels/NaiveBayesClassifier.cs @@ -34,7 +34,10 @@ public bool Run() var (xx, yy) = np.meshgrid(np.linspace(x_min, x_max, 30), np.linspace(y_min, y_max, 30)); with(tf.Session(), sess => { - var samples = np.hstack(xx.ravel().reshape(xx.size, 1), yy.ravel().reshape(yy.size, 1)); + var samples = np.vstack(xx.ravel(), yy.ravel()); + samples = np.transpose(samples); + var array = np.Load("H:\\PythonApplication1\\PythonApplication1\\data.npy"); + samples = np.array(array).astype(np.float32); var Z = sess.run(predict(samples)); }); diff --git a/test/TensorFlowNET.Examples/TensorFlowNET.Examples.csproj b/test/TensorFlowNET.Examples/TensorFlowNET.Examples.csproj index f6cbea998..e64e6df82 100644 --- a/test/TensorFlowNET.Examples/TensorFlowNET.Examples.csproj +++ b/test/TensorFlowNET.Examples/TensorFlowNET.Examples.csproj @@ -23,4 +23,10 @@ + + + ..\..\..\..\NumSharp\src\NumSharp.Core\bin\Debug\netstandard2.0\NumSharp.Core.dll + + + From 41bb84867152390030357d61a4cd42bdba29d060 Mon Sep 17 00:00:00 2001 From: Bo Peng Date: Thu, 20 Jun 2019 12:05:06 -0500 Subject: [PATCH 2/2] add nb_example data --- TensorFlow.NET.sln | 6 ------ data/nb_example.npy | Bin 0 -> 14528 bytes .../TensorFlowNET.Core.csproj | 4 ---- .../BasicModels/NaiveBayesClassifier.cs | 14 ++++++++++---- 4 files changed, 10 insertions(+), 14 deletions(-) create mode 100644 data/nb_example.npy diff --git a/TensorFlow.NET.sln b/TensorFlow.NET.sln index 29ecf84bc..523a148cf 100644 --- a/TensorFlow.NET.sln +++ b/TensorFlow.NET.sln @@ -17,8 +17,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Keras.UnitTest", "test\Kera EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "TensorFlowNET.Examples.FSharp", "test\TensorFlowNET.Examples.FSharp\TensorFlowNET.Examples.FSharp.fsproj", "{62BC3801-F0D3-44A9-A0AC-712F40C8F961}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NumSharp.Core", "..\NumSharp\src\NumSharp.Core\NumSharp.Core.csproj", "{E038A3C1-9055-4BF4-BE5B-0E7D661A7EB3}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -53,10 +51,6 @@ Global {62BC3801-F0D3-44A9-A0AC-712F40C8F961}.Debug|Any CPU.Build.0 = Debug|Any CPU {62BC3801-F0D3-44A9-A0AC-712F40C8F961}.Release|Any CPU.ActiveCfg = Release|Any CPU {62BC3801-F0D3-44A9-A0AC-712F40C8F961}.Release|Any CPU.Build.0 = Release|Any CPU - {E038A3C1-9055-4BF4-BE5B-0E7D661A7EB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E038A3C1-9055-4BF4-BE5B-0E7D661A7EB3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E038A3C1-9055-4BF4-BE5B-0E7D661A7EB3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E038A3C1-9055-4BF4-BE5B-0E7D661A7EB3}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/data/nb_example.npy b/data/nb_example.npy new file mode 100644 index 0000000000000000000000000000000000000000..4547812ca60a160fedc412cd8001e088caf95859 GIT binary patch literal 14528 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 gFYC+tvc9Y@>&yDGzN|0n%lfjutS{@!`m( - - - - ..\..\..\..\NumSharp\src\NumSharp.Core\bin\Debug\netstandard2.0\NumSharp.Core.dll diff --git a/test/TensorFlowNET.Examples/BasicModels/NaiveBayesClassifier.cs b/test/TensorFlowNET.Examples/BasicModels/NaiveBayesClassifier.cs index 9555bcbc7..1f891b8c7 100644 --- a/test/TensorFlowNET.Examples/BasicModels/NaiveBayesClassifier.cs +++ b/test/TensorFlowNET.Examples/BasicModels/NaiveBayesClassifier.cs @@ -5,6 +5,8 @@ using NumSharp; using System.Linq; using static Tensorflow.Python; +using System.IO; +using TensorFlowNET.Examples.Utility; namespace TensorFlowNET.Examples { @@ -34,10 +36,10 @@ public bool Run() var (xx, yy) = np.meshgrid(np.linspace(x_min, x_max, 30), np.linspace(y_min, y_max, 30)); with(tf.Session(), sess => { - var samples = np.vstack(xx.ravel(), yy.ravel()); - samples = np.transpose(samples); - var array = np.Load("H:\\PythonApplication1\\PythonApplication1\\data.npy"); - samples = np.array(array).astype(np.float32); + //var samples = np.vstack(xx.ravel(), yy.ravel()); + //samples = np.transpose(samples); + var array = np.Load(Path.Join("nb", "nb_example.npy")); + var samples = np.array(array).astype(np.float32); var Z = sess.run(predict(samples)); }); @@ -170,6 +172,10 @@ public void PrepareData() 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2); + + + string url = "https://raw.githubusercontent.com/SciSharp/TensorFlow.NET/master/data/nb_example.npy"; + Web.Download(url, "nb", "nb_example.npy"); #endregion }