You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

MathApiTest.cs 1.8 kB

5 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using Microsoft.VisualStudio.TestTools.UnitTesting;
  2. using System.Linq;
  3. using Tensorflow;
  4. using static Tensorflow.Binding;
  5. namespace TensorFlowNET.UnitTest.ManagedAPI
  6. {
  7. [TestClass]
  8. public class MathApiTest : TFNetApiTest
  9. {
  10. // A constant vector of size 6
  11. Tensor a = tf.constant(new float[] { 1.0f, -0.5f, 3.4f, -2.1f, 0.0f, -6.5f });
  12. Tensor b = tf.constant(new float[,] { { 1.0f, -0.5f, 3.4f }, { -2.1f, 0.0f, -6.5f } });
  13. [TestMethod]
  14. public void Sin()
  15. {
  16. var b = tf.sin(a, name: "Sin");
  17. var expected = new float[] { 0.84147096f, -0.47942555f, -0.2555412f, -0.86320937f, 0f, -0.21511999f };
  18. var actual = b.ToArray<float>();
  19. Assert.IsTrue(Equal(expected, actual));
  20. }
  21. [TestMethod]
  22. public void Tan()
  23. {
  24. var b = tf.tan(a, name: "Tan");
  25. var expected = new float[] { 1.5574077f, -0.5463025f, 0.264317f, 1.709847f, 0f, -0.2202772f };
  26. var actual = b.ToArray<float>();
  27. Assert.IsTrue(Equal(expected, actual));
  28. }
  29. [TestMethod]
  30. public void ReduceSum()
  31. {
  32. var x1 = tf.reduce_sum(b);
  33. Assert.AreEqual(-4.7f, (float)x1);
  34. var x2 = tf.reduce_sum(b, 0);
  35. Assert.IsTrue(Enumerable.SequenceEqual(new[] { -1.0999999f, -0.5f, -3.1f }, x2.ToArray<float>()));
  36. var x3 = tf.reduce_sum(b, 1);
  37. Assert.IsTrue(Enumerable.SequenceEqual(new[] { 3.9f, -8.6f }, x3.ToArray<float>()));
  38. var x4 = tf.reduce_sum(b, 1, keepdims: true);
  39. Assert.AreEqual((2, 1), x4.TensorShape);
  40. var x5 = tf.reduce_sum(b, (0, 1));
  41. Assert.AreEqual(-4.7f, (float)x5);
  42. }
  43. }
  44. }