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.

MemoryTestingCases.cs 1.9 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using NumSharp;
  5. using static Tensorflow.Binding;
  6. namespace Tensorflow
  7. {
  8. class MemoryTestingCases
  9. {
  10. /// <summary>
  11. ///
  12. /// </summary>
  13. public Action<int> Constant
  14. => (iterate) =>
  15. {
  16. for (int i = 0; i < iterate; i++)
  17. {
  18. var tensor = tf.constant(3112.0f);
  19. }
  20. };
  21. public Action<int> Constant2x3
  22. => (iterate) =>
  23. {
  24. var nd = np.array(new byte[,]
  25. {
  26. {1, 2, 3},
  27. {4, 5, 6}
  28. });
  29. for (int i = 0; i < iterate; i++)
  30. {
  31. var tensor = tf.constant(nd);
  32. var data = tensor.numpy();
  33. }
  34. };
  35. public Action<int> Variable
  36. => (iterate) =>
  37. {
  38. for (int i = 0; i < iterate; i++)
  39. {
  40. var tensor = tf.Variable(3112.0f);
  41. }
  42. };
  43. public Action<int> MathAdd
  44. => (iterate) =>
  45. {
  46. var x = tf.constant(3112.0f);
  47. var y = tf.constant(3112.0f);
  48. for (int i = 0; i < iterate; i++)
  49. {
  50. var z = x + y;
  51. }
  52. };
  53. public Action<int> Gradient
  54. => (iterate) =>
  55. {
  56. for(int i = 0; i< iterate; i++)
  57. {
  58. var w = tf.constant(3112.0f);
  59. using var tape = tf.GradientTape();
  60. tape.watch(w);
  61. var loss = w * w;
  62. var grad = tape.gradient(loss, w);
  63. }
  64. };
  65. }
  66. }