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