|
|
@@ -15,7 +15,24 @@ namespace TensorFlowNET.Keras.UnitTest |
|
|
|
[TestClass] |
|
|
|
public class LayersTest : EagerModeTestBase |
|
|
|
{ |
|
|
|
// [TestMethod] |
|
|
|
[TestMethod] |
|
|
|
public void AveragePooling2D() |
|
|
|
{ |
|
|
|
var x = tf.constant(new float[,] |
|
|
|
{ |
|
|
|
{ 1, 2, 3 }, |
|
|
|
{ 4, 5, 6 }, |
|
|
|
{ 7, 8, 9 } |
|
|
|
}); |
|
|
|
x = tf.reshape(x, (1, 3, 3, 1)); |
|
|
|
var avg_pool_2d = keras.layers.AveragePooling2D(pool_size: (2, 2), |
|
|
|
strides: (1, 1), padding: "valid"); |
|
|
|
Tensor avg = avg_pool_2d.Apply(x); |
|
|
|
Assert.AreEqual((1, 2, 2, 1), avg.shape); |
|
|
|
Equal(new float[] { 3, 4, 6, 7 }, avg.ToArray<float>()); |
|
|
|
} |
|
|
|
|
|
|
|
[TestMethod] |
|
|
|
public void InputLayer() |
|
|
|
{ |
|
|
|
var model = keras.Sequential(new List<ILayer> |
|
|
@@ -23,8 +40,10 @@ namespace TensorFlowNET.Keras.UnitTest |
|
|
|
keras.layers.InputLayer(input_shape: 4), |
|
|
|
keras.layers.Dense(8) |
|
|
|
}); |
|
|
|
model.compile(optimizer: keras.optimizers.RMSprop(0.001f)); |
|
|
|
model.fit(np.zeros((10, 4)), np.ones((10, 8))); |
|
|
|
model.compile(optimizer: keras.optimizers.RMSprop(0.001f), |
|
|
|
loss: keras.losses.MeanSquaredError(), |
|
|
|
metrics: new[] { "accuracy" }); |
|
|
|
model.fit(np.zeros((10, 4), dtype: tf.float32), np.ones((10, 8), dtype: tf.float32)); |
|
|
|
} |
|
|
|
|
|
|
|
[TestMethod] |
|
|
|