|
|
@@ -1,5 +1,7 @@ |
|
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting; |
|
|
|
using System; |
|
|
|
using static Tensorflow.Binding; |
|
|
|
using static Tensorflow.KerasApi; |
|
|
|
|
|
|
|
namespace Tensorflow.Keras.UnitTest.Model |
|
|
|
{ |
|
|
@@ -14,24 +16,47 @@ namespace Tensorflow.Keras.UnitTest.Model |
|
|
|
var dense = tf.keras.layers.Dense(64); |
|
|
|
var output = dense.Apply(input); |
|
|
|
var model = tf.keras.Model(input, output); |
|
|
|
model.compile(tf.keras.optimizers.Adam(), tf.keras.losses.CategoricalCrossentropy()); |
|
|
|
|
|
|
|
// one dimensions input with unknown batchsize |
|
|
|
var input_2 = tf.keras.layers.Input((60)); |
|
|
|
var dense_2 = tf.keras.layers.Dense(64); |
|
|
|
var output_2 = dense.Apply(input_2); |
|
|
|
var output_2 = dense_2.Apply(input_2); |
|
|
|
var model_2 = tf.keras.Model(input_2, output_2); |
|
|
|
model_2.compile(tf.keras.optimizers.Adam(), tf.keras.losses.CategoricalCrossentropy()); |
|
|
|
|
|
|
|
// two dimensions input with specified batchsize |
|
|
|
var input_3 = tf.keras.layers.Input((17, 60), 8); |
|
|
|
var dense_3 = tf.keras.layers.Dense(64); |
|
|
|
var output_3 = dense.Apply(input_3); |
|
|
|
var output_3 = dense_3.Apply(input_3); |
|
|
|
var model_3 = tf.keras.Model(input_3, output_3); |
|
|
|
model_3.compile(tf.keras.optimizers.Adam(), tf.keras.losses.CategoricalCrossentropy()); |
|
|
|
|
|
|
|
// one dimensions input with specified batchsize |
|
|
|
var input_4 = tf.keras.layers.Input((60), 8); |
|
|
|
var dense_4 = tf.keras.layers.Dense(64); |
|
|
|
var output_4 = dense.Apply(input_4); |
|
|
|
var output_4 = dense_4.Apply(input_4); |
|
|
|
var model_4 = tf.keras.Model(input_4, output_4); |
|
|
|
model_4.compile(tf.keras.optimizers.Adam(), tf.keras.losses.CategoricalCrossentropy()); |
|
|
|
} |
|
|
|
|
|
|
|
[TestMethod] |
|
|
|
public void NestedSequential() |
|
|
|
{ |
|
|
|
var block1 = keras.Sequential(new[] { |
|
|
|
keras.layers.InputLayer((3, 3)), |
|
|
|
keras.Sequential(new [] |
|
|
|
{ |
|
|
|
keras.layers.Flatten(), |
|
|
|
keras.layers.Dense(5) |
|
|
|
} |
|
|
|
) |
|
|
|
}); |
|
|
|
block1.compile(tf.keras.optimizers.Adam(), tf.keras.losses.CategoricalCrossentropy()); |
|
|
|
|
|
|
|
var x = tf.ones((1, 3, 3)); |
|
|
|
var y = block1.predict(x); |
|
|
|
Console.WriteLine(y); |
|
|
|
} |
|
|
|
} |
|
|
|
} |