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.

MemoryKerasTest.cs 1.9 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using NumSharp;
  2. using System;
  3. using static Tensorflow.Binding;
  4. using static Tensorflow.KerasApi;
  5. namespace Tensorflow
  6. {
  7. class MemoryKerasTest
  8. {
  9. public Action<int, int> Conv2DLayer
  10. => (epoch, iterate) =>
  11. {
  12. var input_shape = new int[] { 4, 512, 512, 3 };
  13. var x = tf.random.normal(input_shape);
  14. var conv2d = keras.layers.Conv2D(2, 3, activation: keras.activations.Relu);
  15. var output = conv2d.Apply(x);
  16. };
  17. public Action<int, int> InputLayer
  18. => (epoch, iterate) =>
  19. {
  20. TensorShape shape = (32, 256, 256, 3); // 48M
  21. var images = np.arange(shape.size).astype(np.float32).reshape(shape.dims);
  22. var inputs = keras.Input((shape.dims[1], shape.dims[2], 3));
  23. var conv2d = keras.layers.Conv2D(32, kernel_size: (3, 3),
  24. activation: keras.activations.Linear);
  25. var outputs = conv2d.Apply(inputs);
  26. };
  27. public Action<int, int> Prediction
  28. => (epoch, iterate) =>
  29. {
  30. TensorShape shape = (32, 256, 256, 3); // 48M
  31. var images = np.arange(shape.size).astype(np.float32).reshape(shape.dims);
  32. var inputs = keras.Input((shape.dims[1], shape.dims[2], 3));
  33. var conv2d = keras.layers.Conv2D(32, kernel_size: (3, 3),
  34. activation: keras.activations.Linear).Apply(inputs);
  35. var flatten = keras.layers.Flatten().Apply(inputs);
  36. var outputs = keras.layers.Dense(10).Apply(flatten);
  37. var model = keras.Model(inputs, outputs, "prediction");
  38. for (int i = 0; i < 10; i++)
  39. {
  40. model.predict(images, batch_size: 8);
  41. }
  42. };
  43. }
  44. }