Browse Source

Added use case for creating and resizing a tensor.

tags/v0.20
vpenades Haiping 5 years ago
parent
commit
7f507fa81e
1 changed files with 38 additions and 0 deletions
  1. +38
    -0
      test/TensorFlowNET.UnitTest/Basics/TensorTest.cs

+ 38
- 0
test/TensorFlowNET.UnitTest/Basics/TensorTest.cs View File

@@ -273,5 +273,43 @@ namespace TensorFlowNET.UnitTest.NativeAPI
Assert.IsTrue(Enumerable.SequenceEqual(new int[] { 0, 2 }, masked.ToArray<int>()));
}
}

/// <summary>
/// Creates a tensor from an image of 256x256x3 and resizes it to 100x100x3
/// </summary>
[TestMethod]
public unsafe void tensor_resize()
{
var imageArray = new float[256 * 256 * 3];

using var newSize = tf.convert_to_tensor(new int[] { 100, 100 });

using (var t = new Tensor(imageArray, new long[] { 1, 256, 256, 3 }, tf.float32))
{
Assert.IsFalse(t.IsDisposed);
Assert.AreEqual(256 * 256 * 3 * sizeof(float), (int)t.bytesize);

using var resized = tf.image.resize_bilinear(t, newSize);
EXPECT_EQ((int)resized.shape[0], 1);
EXPECT_EQ((int)resized.shape[1], 100);
EXPECT_EQ((int)resized.shape[2], 100);
EXPECT_EQ((int)resized.shape[3], 3);
}

fixed (float* ptr = &imageArray[0])
{
using (var t = new Tensor((IntPtr)ptr, new long[] { imageArray.Length }, tf.float32, 4 * imageArray.Length))
{
Assert.IsFalse(t.IsDisposed);
Assert.AreEqual(256 * 256 * 3 * sizeof(float), (int)t.bytesize);

using var resized = tf.image.resize_bilinear(t, newSize);
EXPECT_EQ((int)resized.shape[0], 1);
EXPECT_EQ((int)resized.shape[1], 100);
EXPECT_EQ((int)resized.shape[2], 100);
EXPECT_EQ((int)resized.shape[3], 3);
}
}
}
}
}

Loading…
Cancel
Save