Skip to content

Commit 77e6bb5

Browse files
committed
Move keras unit test in seperate project.
1 parent d2e50dd commit 77e6bb5

16 files changed

+120
-20
lines changed

TensorFlow.NET.sln

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tensorflow.Recommenders", "
1919
EndProject
2020
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tensorflow.Native.UnitTest", "test\TensorFlowNET.Native.UnitTest\Tensorflow.Native.UnitTest.csproj", "{84CA35F8-99FC-408E-8DF3-5AA175E5EFD3}"
2121
EndProject
22+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tensorflow.Keras.UnitTest", "test\TensorFlowNET.Keras.UnitTest\Tensorflow.Keras.UnitTest.csproj", "{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}"
23+
EndProject
2224
Global
2325
GlobalSection(SolutionConfigurationPlatforms) = preSolution
2426
Debug|Any CPU = Debug|Any CPU
@@ -227,6 +229,30 @@ Global
227229
{84CA35F8-99FC-408E-8DF3-5AA175E5EFD3}.Release|x64.Build.0 = Release|Any CPU
228230
{84CA35F8-99FC-408E-8DF3-5AA175E5EFD3}.Release|x86.ActiveCfg = Release|Any CPU
229231
{84CA35F8-99FC-408E-8DF3-5AA175E5EFD3}.Release|x86.Build.0 = Release|Any CPU
232+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
233+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
234+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Debug|x64.ActiveCfg = Debug|x64
235+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Debug|x64.Build.0 = Debug|x64
236+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Debug|x86.ActiveCfg = Debug|Any CPU
237+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Debug|x86.Build.0 = Debug|Any CPU
238+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Debug-Minimal|Any CPU.ActiveCfg = Debug|Any CPU
239+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Debug-Minimal|Any CPU.Build.0 = Debug|Any CPU
240+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Debug-Minimal|x64.ActiveCfg = Debug|Any CPU
241+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Debug-Minimal|x64.Build.0 = Debug|Any CPU
242+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Debug-Minimal|x86.ActiveCfg = Debug|Any CPU
243+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Debug-Minimal|x86.Build.0 = Debug|Any CPU
244+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Publish|Any CPU.ActiveCfg = Debug|Any CPU
245+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Publish|Any CPU.Build.0 = Debug|Any CPU
246+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Publish|x64.ActiveCfg = Debug|Any CPU
247+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Publish|x64.Build.0 = Debug|Any CPU
248+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Publish|x86.ActiveCfg = Debug|Any CPU
249+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Publish|x86.Build.0 = Debug|Any CPU
250+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
251+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Release|Any CPU.Build.0 = Release|Any CPU
252+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Release|x64.ActiveCfg = Release|Any CPU
253+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Release|x64.Build.0 = Release|Any CPU
254+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Release|x86.ActiveCfg = Release|Any CPU
255+
{79EB56DF-E29E-4AE2-A7D9-FE403FD919BA}.Release|x86.Build.0 = Release|Any CPU
230256
EndGlobalSection
231257
GlobalSection(SolutionProperties) = preSolution
232258
HideSolutionNode = FALSE

src/TensorFlowNET.Core/Tensorflow.Binding.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ TensorFlow .NET v0.3x is focused on making more Keras API works</PackageReleaseN
8282
<ItemGroup>
8383
<PackageReference Include="MethodBoundaryAspect.Fody" Version="2.0.138" />
8484
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="5.0.1" />
85-
<PackageReference Include="NumSharp.Lite" Version="0.1.10" />
85+
<PackageReference Include="NumSharp.Lite" Version="0.1.11" />
8686
<PackageReference Include="Protobuf.Text" Version="0.4.0" />
8787
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
8888
</ItemGroup>
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
using Microsoft.VisualStudio.TestTools.UnitTesting;
2+
using System;
3+
using static Tensorflow.Binding;
4+
5+
namespace TensorFlowNET.Keras.UnitTest
6+
{
7+
public class EagerModeTestBase
8+
{
9+
[TestInitialize]
10+
public void TestInit()
11+
{
12+
if (!tf.executing_eagerly())
13+
tf.enable_eager_execution();
14+
tf.Context.ensure_initialized();
15+
}
16+
17+
[TestCleanup]
18+
public void TestClean()
19+
{
20+
}
21+
22+
public bool Equal(float[] f1, float[] f2)
23+
{
24+
bool ret = false;
25+
var tolerance = .000001f;
26+
for (var i = 0; i < f1.Length; i++)
27+
{
28+
ret = Math.Abs(f1[i] - f2[i]) <= tolerance;
29+
if (!ret)
30+
break;
31+
}
32+
33+
return ret;
34+
}
35+
36+
public bool Equal(double[] d1, double[] d2)
37+
{
38+
bool ret = false;
39+
var tolerance = .000000000000001f;
40+
for (var i = 0; i < d1.Length; i++)
41+
{
42+
ret = Math.Abs(d1[i] - d2[i]) <= tolerance;
43+
if (!ret)
44+
break;
45+
}
46+
47+
return ret;
48+
}
49+
}
50+
}

test/TensorFlowNET.UnitTest/Keras/ActivationTest.cs renamed to test/TensorFlowNET.Keras.UnitTest/Layers/ActivationTest.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
using static Tensorflow.KerasApi;
77
using Tensorflow;
88

9-
namespace TensorFlowNET.UnitTest.Keras
9+
namespace TensorFlowNET.Keras.UnitTest
1010
{
1111
[TestClass]
1212
public class ActivationTest : EagerModeTestBase
@@ -16,11 +16,7 @@ public void LeakyReLU()
1616
{
1717
var layer = keras.layers.LeakyReLU();
1818
Tensor output = layer.Apply(np.array(-3.0f, -1.0f, 0.0f, 2.0f));
19-
var outputArray = output.ToArray<float>();
20-
assertFloat32Equal(-0.9f, outputArray[0], "Not equal");
21-
assertFloat32Equal(-0.3f, outputArray[1], "Not equal");
22-
assertFloat32Equal(0.0f, outputArray[2], "Not equal");
23-
assertFloat32Equal(2.0f, outputArray[3], "Not equal");
19+
Equal(new[] { -0.9f, -0.3f, 0.0f, 2.0f }, output.ToArray<float>());
2420
}
2521
}
2622
}

test/TensorFlowNET.UnitTest/Keras/CosineSimilarity.Test.cs renamed to test/TensorFlowNET.Keras.UnitTest/Layers/CosineSimilarity.Test.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
using static Tensorflow.Binding;
66
using static Tensorflow.KerasApi;
77

8-
namespace TensorFlowNET.UnitTest.Keras
8+
namespace TensorFlowNET.Keras.UnitTest
99
{
1010
[TestClass]
1111
public class CosineSimilarity

test/TensorFlowNET.UnitTest/Keras/Huber.Test.cs renamed to test/TensorFlowNET.Keras.UnitTest/Layers/Huber.Test.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
using static Tensorflow.Binding;
66
using static Tensorflow.KerasApi;
77

8-
namespace TensorFlowNET.UnitTest.Keras
8+
namespace TensorFlowNET.Keras.UnitTest
99
{
1010
[TestClass]
1111
public class Huber

test/TensorFlowNET.UnitTest/Keras/Layers.Merging.Test.cs renamed to test/TensorFlowNET.Keras.UnitTest/Layers/Layers.Merging.Test.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using Tensorflow;
44
using static Tensorflow.KerasApi;
55

6-
namespace TensorFlowNET.UnitTest.Keras
6+
namespace TensorFlowNET.Keras.UnitTest
77
{
88
[TestClass]
99
public class LayersMergingTest : EagerModeTestBase

test/TensorFlowNET.UnitTest/Keras/Layers.Reshaping.Test.cs renamed to test/TensorFlowNET.Keras.UnitTest/Layers/Layers.Reshaping.Test.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using static Tensorflow.Binding;
44
using static Tensorflow.KerasApi;
55

6-
namespace TensorFlowNET.UnitTest.Keras
6+
namespace TensorFlowNET.Keras.UnitTest
77
{
88
[TestClass]
99
public class LayersReshapingTest : EagerModeTestBase

test/TensorFlowNET.UnitTest/Keras/LayersTest.cs renamed to test/TensorFlowNET.Keras.UnitTest/Layers/LayersTest.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using Tensorflow;
44
using static Tensorflow.KerasApi;
55

6-
namespace TensorFlowNET.UnitTest.Keras
6+
namespace TensorFlowNET.Keras.UnitTest
77
{
88
/// <summary>
99
/// https://www.tensorflow.org/versions/r2.3/api_docs/python/tf/keras/layers
@@ -24,7 +24,7 @@ public void Functional()
2424
var layers = keras.layers;
2525

2626
var inputs = keras.Input(shape: 784);
27-
Assert.AreEqual((None, 784), inputs.TensorShape);
27+
Assert.AreEqual((-1, 784), inputs.TensorShape);
2828

2929
var dense = layers.Dense(64, activation: keras.activations.Relu);
3030
var x = dense.Apply(inputs);
@@ -59,7 +59,7 @@ public void Embedding()
5959
});
6060
// model.compile("rmsprop", "mse");
6161
var output_array = model.predict(input_array);
62-
Assert.AreEqual((32, 10, 64), output_array.TensorShape);
62+
Assert.AreEqual((32, 10, 64), output_array.shape);
6363
}
6464

6565
/// <summary>

test/TensorFlowNET.UnitTest/Keras/LogCosh.Test.cs renamed to test/TensorFlowNET.Keras.UnitTest/Layers/LogCosh.Test.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
using static Tensorflow.Binding;
66
using static Tensorflow.KerasApi;
77

8-
namespace TensorFlowNET.UnitTest.Keras
8+
namespace TensorFlowNET.Keras.UnitTest
99
{
1010
[TestClass]
1111
public class LogCosh

0 commit comments

Comments
 (0)