|
1 | 1 | using Microsoft.VisualStudio.TestTools.UnitTesting; |
| 2 | +using NumSharp; |
2 | 3 | using Tensorflow; |
3 | 4 | using static Tensorflow.Binding; |
4 | 5 |
|
@@ -65,15 +66,16 @@ public void GradientSliceTest() |
65 | 66 | [TestMethod] |
66 | 67 | public void GradientConcatTest() |
67 | 68 | { |
68 | | - var X = tf.zeros(10); |
69 | | - var W = tf.Variable(-0.06f, name: "weight"); |
70 | | - var b = tf.Variable(-0.73f, name: "bias"); |
71 | | - var test = tf.concat(new Tensor[] { W, b }, 0); |
| 69 | + var w1 = tf.Variable(new[] { new[] { 1f } }); |
| 70 | + var w2 = tf.Variable(new[] { new[] { 3f } }); |
72 | 71 | using var g = tf.GradientTape(); |
73 | | - var pred = test[0] * X + test[1]; |
74 | | - var gradients = g.gradient(pred, (W, b)); |
75 | | - Assert.IsNull(gradients.Item1); |
76 | | - Assert.IsNull(gradients.Item2); |
| 72 | + var w = tf.concat(new Tensor[] { w1, w2 }, 0); |
| 73 | + var x = tf.ones((1, 2)); |
| 74 | + var y = tf.reduce_sum(x, 1); |
| 75 | + var r = tf.matmul(w, x); |
| 76 | + var gradients = g.gradient(r, w); |
| 77 | + Assert.AreEqual((float)gradients[0][0], 2f); |
| 78 | + Assert.AreEqual((float)gradients[1][0], 2f); |
77 | 79 | } |
78 | 80 | } |
79 | 81 | } |
0 commit comments