Skip to content

Commit 095bf33

Browse files
AsakusaRinneOceania2018
authored andcommitted
Refine the keras SavedModel unittest.
1 parent 8f6612d commit 095bf33

File tree

2 files changed

+45
-57
lines changed

2 files changed

+45
-57
lines changed

test/TensorFlowNET.Keras.UnitTest/SaveModel/SequentialModelLoad.cs

+6-16
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,10 @@
11
using Microsoft.VisualStudio.TestTools.UnitTesting;
2-
using System;
3-
using System.Collections.Generic;
4-
using System.Diagnostics;
52
using System.Linq;
6-
using System.Text;
7-
using System.Threading.Tasks;
8-
using Tensorflow.Keras.Engine;
9-
using Tensorflow.Keras.Saving.SavedModel;
10-
using Tensorflow.Keras.Losses;
11-
using Tensorflow.Keras.Metrics;
123
using Tensorflow;
134
using Tensorflow.Keras.Optimizers;
14-
using static Tensorflow.KerasApi;
15-
using Tensorflow.NumPy;
165
using Tensorflow.Keras.UnitTest.Helpers;
17-
using static TensorFlowNET.Keras.UnitTest.SaveModel.SequentialModelSave;
6+
using Tensorflow.NumPy;
7+
using static Tensorflow.Binding;
188

199
namespace TensorFlowNET.Keras.UnitTest.SaveModel;
2010

@@ -24,10 +14,10 @@ public class SequentialModelLoad
2414
[TestMethod]
2515
public void SimpleModelFromAutoCompile()
2616
{
27-
var model = keras.models.load_model(@"Assets/simple_model_from_auto_compile");
17+
var model = tf.keras.models.load_model(@"Assets/simple_model_from_auto_compile");
2818
model.summary();
2919

30-
model.compile(new Adam(0.0001f), new LossesApi().SparseCategoricalCrossentropy(), new string[] { "accuracy" });
20+
model.compile(new Adam(0.0001f), tf.keras.losses.SparseCategoricalCrossentropy(), new string[] { "accuracy" });
3121

3222
// check the weights
3323
var kernel1 = np.load(@"Assets/simple_model_from_auto_compile/kernel1.npy");
@@ -54,10 +44,10 @@ public void SimpleModelFromAutoCompile()
5444
public void AlexnetFromSequential()
5545
{
5646
new SequentialModelSave().AlexnetFromSequential();
57-
var model = keras.models.load_model(@"./alexnet_from_sequential");
47+
var model = tf.keras.models.load_model(@"./alexnet_from_sequential");
5848
model.summary();
5949

60-
model.compile(new Adam(0.001f), new LossesApi().SparseCategoricalCrossentropy(from_logits: true), new string[] { "accuracy" });
50+
model.compile(new Adam(0.001f), tf.keras.losses.SparseCategoricalCrossentropy(from_logits: true), new string[] { "accuracy" });
6151

6252
var num_epochs = 1;
6353
var batch_size = 8;

test/TensorFlowNET.Keras.UnitTest/SaveModel/SequentialModelSave.cs

+39-41
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
using Microsoft.VisualStudio.TestTools.UnitTesting;
22
using System.Collections.Generic;
3-
using System.Diagnostics;
43
using Tensorflow;
54
using Tensorflow.Keras;
65
using Tensorflow.Keras.Engine;
7-
using Tensorflow.Keras.Losses;
86
using Tensorflow.Keras.Optimizers;
97
using Tensorflow.Keras.UnitTest.Helpers;
108
using static Tensorflow.Binding;
@@ -18,15 +16,15 @@ public class SequentialModelSave
1816
[TestMethod]
1917
public void SimpleModelFromAutoCompile()
2018
{
21-
var inputs = keras.layers.Input((28, 28, 1));
22-
var x = keras.layers.Flatten().Apply(inputs);
23-
x = keras.layers.Dense(100, activation: tf.nn.relu).Apply(x);
24-
x = keras.layers.Dense(units: 10).Apply(x);
25-
var outputs = keras.layers.Softmax(axis: 1).Apply(x);
26-
var model = keras.Model(inputs, outputs);
27-
28-
model.compile(new Adam(0.001f),
29-
keras.losses.SparseCategoricalCrossentropy(),
19+
var inputs = tf.keras.layers.Input((28, 28, 1));
20+
var x = tf.keras.layers.Flatten().Apply(inputs);
21+
x = tf.keras.layers.Dense(100, activation: tf.nn.relu).Apply(x);
22+
x = tf.keras.layers.Dense(units: 10).Apply(x);
23+
var outputs = tf.keras.layers.Softmax(axis: 1).Apply(x);
24+
var model = tf.keras.Model(inputs, outputs);
25+
26+
model.compile(new Adam(0.001f),
27+
tf.keras.losses.SparseCategoricalCrossentropy(),
3028
new string[] { "accuracy" });
3129

3230
var data_loader = new MnistModelLoader();
@@ -48,18 +46,18 @@ public void SimpleModelFromAutoCompile()
4846
[TestMethod]
4947
public void SimpleModelFromSequential()
5048
{
51-
Model model = KerasApi.keras.Sequential(new List<ILayer>()
49+
Model model = keras.Sequential(new List<ILayer>()
5250
{
53-
keras.layers.InputLayer((28, 28, 1)),
54-
keras.layers.Flatten(),
55-
keras.layers.Dense(100, "relu"),
56-
keras.layers.Dense(10),
57-
keras.layers.Softmax()
51+
tf.keras.layers.InputLayer((28, 28, 1)),
52+
tf.keras.layers.Flatten(),
53+
tf.keras.layers.Dense(100, "relu"),
54+
tf.keras.layers.Dense(10),
55+
tf.keras.layers.Softmax()
5856
});
5957

6058
model.summary();
6159

62-
model.compile(new Adam(0.001f), new LossesApi().SparseCategoricalCrossentropy(), new string[] { "accuracy" });
60+
model.compile(new Adam(0.001f), tf.keras.losses.SparseCategoricalCrossentropy(), new string[] { "accuracy" });
6361

6462
var data_loader = new MnistModelLoader();
6563
var num_epochs = 1;
@@ -80,39 +78,39 @@ public void SimpleModelFromSequential()
8078
[TestMethod]
8179
public void AlexnetFromSequential()
8280
{
83-
Model model = KerasApi.keras.Sequential(new List<ILayer>()
81+
Model model = keras.Sequential(new List<ILayer>()
8482
{
85-
keras.layers.InputLayer((227, 227, 3)),
86-
keras.layers.Conv2D(96, (11, 11), (4, 4), activation:"relu", padding:"valid"),
87-
keras.layers.BatchNormalization(),
88-
keras.layers.MaxPooling2D((3, 3), strides:(2, 2)),
83+
tf.keras.layers.InputLayer((227, 227, 3)),
84+
tf.keras.layers.Conv2D(96, (11, 11), (4, 4), activation:"relu", padding:"valid"),
85+
tf.keras.layers.BatchNormalization(),
86+
tf.keras.layers.MaxPooling2D((3, 3), strides:(2, 2)),
8987

90-
keras.layers.Conv2D(256, (5, 5), (1, 1), "same", activation: "relu"),
91-
keras.layers.BatchNormalization(),
92-
keras.layers.MaxPooling2D((3, 3), (2, 2)),
88+
tf.keras.layers.Conv2D(256, (5, 5), (1, 1), "same", activation: "relu"),
89+
tf.keras.layers.BatchNormalization(),
90+
tf.keras.layers.MaxPooling2D((3, 3), (2, 2)),
9391

94-
keras.layers.Conv2D(384, (3, 3), (1, 1), "same", activation: "relu"),
95-
keras.layers.BatchNormalization(),
92+
tf.keras.layers.Conv2D(384, (3, 3), (1, 1), "same", activation: "relu"),
93+
tf.keras.layers.BatchNormalization(),
9694

97-
keras.layers.Conv2D(384, (3, 3), (1, 1), "same", activation: "relu"),
98-
keras.layers.BatchNormalization(),
95+
tf.keras.layers.Conv2D(384, (3, 3), (1, 1), "same", activation: "relu"),
96+
tf.keras.layers.BatchNormalization(),
9997

100-
keras.layers.Conv2D(256, (3, 3), (1, 1), "same", activation: "relu"),
101-
keras.layers.BatchNormalization(),
102-
keras.layers.MaxPooling2D((3, 3), (2, 2)),
98+
tf.keras.layers.Conv2D(256, (3, 3), (1, 1), "same", activation: "relu"),
99+
tf.keras.layers.BatchNormalization(),
100+
tf.keras.layers.MaxPooling2D((3, 3), (2, 2)),
103101

104-
keras.layers.Flatten(),
105-
keras.layers.Dense(4096, activation: "relu"),
106-
keras.layers.Dropout(0.5f),
102+
tf.keras.layers.Flatten(),
103+
tf.keras.layers.Dense(4096, activation: "relu"),
104+
tf.keras.layers.Dropout(0.5f),
107105

108-
keras.layers.Dense(4096, activation: "relu"),
109-
keras.layers.Dropout(0.5f),
106+
tf.keras.layers.Dense(4096, activation: "relu"),
107+
tf.keras.layers.Dropout(0.5f),
110108

111-
keras.layers.Dense(1000, activation: "linear"),
112-
keras.layers.Softmax(1)
109+
tf.keras.layers.Dense(1000, activation: "linear"),
110+
tf.keras.layers.Softmax(1)
113111
});
114112

115-
model.compile(new Adam(0.001f), new LossesApi().SparseCategoricalCrossentropy(from_logits: true), new string[] { "accuracy" });
113+
model.compile(new Adam(0.001f), tf.keras.losses.SparseCategoricalCrossentropy(from_logits: true), new string[] { "accuracy" });
116114

117115
var num_epochs = 1;
118116
var batch_size = 8;

0 commit comments

Comments
 (0)