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 51125309..29ecf84b 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 4c69faba..29cefda1 100644 --- a/src/TensorFlowNET.Core/Operations/Distributions/normal.py.cs +++ b/src/TensorFlowNET.Core/Operations/Distributions/normal.py.cs @@ -82,7 +82,7 @@ namespace Tensorflow 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 1cca840f..71ae49c0 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 e1615035..9555bcbc 100644 --- a/test/TensorFlowNET.Examples/BasicModels/NaiveBayesClassifier.cs +++ b/test/TensorFlowNET.Examples/BasicModels/NaiveBayesClassifier.cs @@ -34,7 +34,10 @@ namespace TensorFlowNET.Examples 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 f6cbea99..e64e6df8 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 29ecf84b..523a148c 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 zcmbW;dx%t39KiA2)Z8}P*SKoC=8p6ji;cF3FfqDONJNQ6NogTd&SGG#%!(AYWD!yH zz#jCZ@DD>R0*R=kkSKbgMc4}>B6|=)L_rUGH)jr?-~GS)&*d{`xqIe*xx2IH-hE*C zWf!fuqO)UD$L8AF#^g24+LCH*>GXtg#z(cIXqU%zIexwesBUshi~*=W5!xvsvU z(ek1*$Hqphr=2)jovQxNt$Vz^^%NcL?aQE=Kpx;_0CFo?zu}QPTgMmhih;9=E-HVWBkpn>42r5 zcyZo=8}Ay7@r|Efeg3y6&k0{R zbnPqM_~e8OHeI(M#@mPM9SP4q{^c_+ey;Sd>GYmdjq!RrNa=U?r>(TUcT8Jw^Wral zkG`xg>&yDGzN|0n%lfjutS{@!`m(;PFYC+tvc9Y@>&yDGzN|0n%lfjutS{@!`m(;P zZ(n<&e@0){m-S_RSzp$d^<{loU)GoPWqny+)|d5VeOX`Dm-S_RSzp$d^<{loU)GoP zWqny+*7uR_Ra3jR{T+Q-U)GoPWqny+)|d5VeOX`Dm-S_RSzp$d^<{loU)GoPWqny+ z)|d5VeOX`Dm-S_RS>I~wx6Z*W|3+Wdm-S_RSzp$d^<{loU)GoPWqny+)|d5VeOX`D zm-S_RSzp$d^<{loU)GoPWqny+*7w7%eP`XXyQA>=iuGlESzp$d^<{loU)GoPWqny+ z)|d5VeOX`Dm-S_RSzp$d^<{loU)GoPWqny+)|d6o*K=p|Wqny+)|d5VeOX`Dm-S_R zSzp$d^<{loU)GoPWqny+)|d5VeOX`Dm-S_RSzp$d^<{mpZ2gt<#@554FYC+tvc9Y@ z>&yDGzN|0n%lfjutS{@!`m(;PFYC+tvc9Y@>&yDGzN|0n%lfjutS{@Ee_l_EzN|0n z%lfjutS{@!`m(;PFYC+tvc9Y@>&yDGzN|0n%lfjutS{@!`m(;PFYC+tvc9bE*S%?` z)1xoz%lfjutS{@!`m(;PFYC+tvc9Y@>&yDGzN|0n%lfjutS{@!`m(;PFYC+tvc9Y@ z>$@{8OVwvYU)GoPWqny+)|d5VeOX`Dm-S_RSzp$d^<{loU)GoPWqny+)|d5VeOX`D zm-S_RSzp$7eI+e~9UgsIU)GoPWqny+)|d5VeOX`Dm-S_RSzp$d^<{loU)GoPWqny+ z)|d5VeOX`Dm-S_RS>HVGnbDW^Wqny+)|d5VeOX`Dm-S_RSzp$d^<{loU)GoP<-8v* zSYOtc^<{loU)GoPWqny+)|d7Dc}`mR?~1;xFYC+tvc9Y@>&yDGzN|0n%lfjutS{@! z`m(;PFX!_%T(G{ZFYC+tvc9Y@>&yDGzN|0n`%=11v+#)M%lfjutS{@!`m(;PFYC+t zvc9Y@>&yDGzN|0n%lfjutS{@!`m(;PFYC+tvc9Y@>&yDyG?c!wJNmM|tS{@!`m(;P zFYC+tvc9Y@>&yDGzN|0n%lfjutS{@!`m(;PFYC+tvc9Y@>&yDGzPZDZ(U>&yDGzN|0n%lfjutS{@!`m(;PFYC+tvc9Y@>&yDGzN|0n%lb}Fw|{>s z`?9{QFYC+ta{fM*g7sy6Szp$d^<{loU)GoPWqny+)|d5VeOX`Dm-S_RSzp$d^<{lo zU)J~S^w`3|S#kZczN|0n%lfjutS{@!`m(;PFYC+tvc9Y@>&yDGzN|0n%lfjutS{@! z`m(;PFYC+tvc7kxr&bOe6@6J>)|d5VeOX`Dm-S_RSzp$d^<{loU)GoPWqny+)|d5V zeOX`Dm-S_RSzp$d^<{lo-xbHE2bX%HFYC+tvc9Y@>&yDGzN|0n%lfjutS{@!`m(;P zFYC+tvc9Y@>&yDGzN|0n%lfjutS{@EkJB4{Szp$d^<{loU)GoPWqny+)|d5VeOX`D zm-S_RSzp$d^<{loU)GoPWqmpCM+(-L^<{lo-@KmH7kyb@)|d5VeOX`Dm-S_RSzp$d z^<{loU)GoPWqny+)|d5VeOX`Dm-S_RId>W&yDGzN|0n%lfju ztS{@!`m(;PFYC+te%$&mjj3H_U)GoPWqny+)|d5VeOX`Dm-S_RSzp$d^<{loU)GoP zWqny+)|d5VeOX`Dm-S_RSzp#S-*2eI^~?IQzN|0n%lfjutS{@!`m(;PFYC+tvc9Y@ z>&yDGzN|0n%lfjutS{@!`m(;PFYC+tKK5wZ%D${G>&yDGzN|0n%lfjutS{@!`m(;P 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 9555bcbc..1f891b8c 100644 --- a/test/TensorFlowNET.Examples/BasicModels/NaiveBayesClassifier.cs +++ b/test/TensorFlowNET.Examples/BasicModels/NaiveBayesClassifier.cs @@ -5,6 +5,8 @@ using Tensorflow; using NumSharp; using System.Linq; using static Tensorflow.Python; +using System.IO; +using TensorFlowNET.Examples.Utility; namespace TensorFlowNET.Examples { @@ -34,10 +36,10 @@ namespace TensorFlowNET.Examples 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 @@ namespace TensorFlowNET.Examples 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 }