Browse Source

Added unit tests for Keras Conv2D

tags/v0.40-tf2.4-tstring
Niklas Gustafsson 4 years ago
parent
commit
2a42bcd09b
2 changed files with 22 additions and 7 deletions
  1. +1
    -2
      src/TensorFlowNET.Keras/Layers/LayersApi.cs
  2. +21
    -5
      test/TensorFlowNET.Keras.UnitTest/Layers/Layers.Convolution.Test.cs

+ 1
- 2
src/TensorFlowNET.Keras/Layers/LayersApi.cs View File

@@ -66,7 +66,7 @@ namespace Tensorflow.Keras.Layers
Trainable = trainable,
Name = name
});
#if false
/// <summary>
/// 2D convolution layer (e.g. spatial convolution over images).
/// This layer creates a convolution kernel that is convolved with the layer input to produce a tensor of outputs.
@@ -119,7 +119,6 @@ namespace Tensorflow.Keras.Layers
ActivityRegularizer = activity_regularizer,
Activation = activation ?? keras.activations.Linear
});
#endif

/// <summary>
/// 2D convolution layer (e.g. spatial convolution over images).


+ 21
- 5
test/TensorFlowNET.Keras.UnitTest/Layers/Layers.Convolution.Test.cs View File

@@ -12,7 +12,7 @@ namespace TensorFlowNET.Keras.UnitTest
public void BasicConv2D()
{
var filters = 8;
var conv = keras.layers.Conv2D(filters);
var conv = keras.layers.Conv2D(filters, activation: "linear");

var x = np.arange(256.0f).reshape(1,8,8,4);
var y = conv.Apply(x);
@@ -28,7 +28,7 @@ namespace TensorFlowNET.Keras.UnitTest
public void BasicConv2D_ksize()
{
var filters = 8;
var conv = keras.layers.Conv2D(filters, kernel_size: 3);
var conv = keras.layers.Conv2D(filters, kernel_size: 3, activation: "linear");

var x = np.arange(256.0f).reshape(1, 8, 8, 4);
var y = conv.Apply(x);
@@ -44,7 +44,7 @@ namespace TensorFlowNET.Keras.UnitTest
public void BasicConv2D_ksize_same()
{
var filters = 8;
var conv = keras.layers.Conv2D(filters, kernel_size: 3, padding: "same");
var conv = keras.layers.Conv2D(filters, kernel_size: 3, padding: "same", activation: "linear");

var x = np.arange(256.0f).reshape(1, 8, 8, 4);
var y = conv.Apply(x);
@@ -60,7 +60,7 @@ namespace TensorFlowNET.Keras.UnitTest
public void BasicConv2D_ksize_strides()
{
var filters = 8;
var conv = keras.layers.Conv2D(filters, kernel_size: 3, strides: 2);
var conv = keras.layers.Conv2D(filters, kernel_size: 3, strides: 2, activation: "linear");

var x = np.arange(256.0f).reshape(1, 8, 8, 4);
var y = conv.Apply(x);
@@ -76,7 +76,7 @@ namespace TensorFlowNET.Keras.UnitTest
public void BasicConv2D_ksize_dilation()
{
var filters = 8;
var conv = keras.layers.Conv2D(filters, kernel_size: 3, dilation_rate: 2);
var conv = keras.layers.Conv2D(filters, kernel_size: 3, dilation_rate: 2, activation: "linear");

var x = np.arange(256.0f).reshape(1, 8, 8, 4);
var y = conv.Apply(x);
@@ -87,5 +87,21 @@ namespace TensorFlowNET.Keras.UnitTest
Assert.AreEqual(x.shape[2] - 4, y.shape[2]);
Assert.AreEqual(filters, y.shape[3]);
}

[TestMethod]
public void BasicConv2D_ksize_dilation_same()
{
var filters = 8;
var conv = keras.layers.Conv2D(filters, kernel_size: 3, dilation_rate: 2, padding: "same", activation: "linear");

var x = np.arange(256.0f).reshape(1, 8, 8, 4);
var y = conv.Apply(x);

Assert.AreEqual(4, y.shape.ndim);
Assert.AreEqual(x.shape[0], y.shape[0]);
Assert.AreEqual(x.shape[1], y.shape[1]);
Assert.AreEqual(x.shape[2], y.shape[2]);
Assert.AreEqual(filters, y.shape[3]);
}
}
}

Loading…
Cancel
Save