Browse Source

Testing gradients function:

- Concat
- LGamma
- Tanh
- Slice
pull/307/head
Sattisvar Tandabany 6 years ago
parent
commit
712fc3abfd
1 changed files with 68 additions and 1 deletions
  1. +68
    -1
      test/TensorFlowNET.UnitTest/gradients_test/GradientsTest.cs

+ 68
- 1
test/TensorFlowNET.UnitTest/gradients_test/GradientsTest.cs View File

@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using NumSharp;
using Tensorflow;
@@ -64,6 +63,74 @@ namespace TensorFlowNET.UnitTest.gradients_test
}
}

[TestMethod]
public void testTanhGradient()
{
var a = tf.constant(1f);
var b = tf.tanh(a);
var g = tf.gradients(b, a);
using (var sess = tf.Session())
{
var result = sess.run(g);
var actual = result[0].GetData<float>()[0];
self.assertEquals(0.41997434127f, actual);
}
}


[TestMethod]
public void testLgammaGrad()
{
var a = tf.constant(5f);
var b = tf.lgamma(a);
var g = tf.gradients(b, a);
using (var sess = tf.Session())
{
var result = sess.run(new object[] { g, b });
var actualDeriv = result[0].GetData<float>()[0];
var actual = result[1].GetData<float>()[0];
self.assertEquals(1.5061177f, actualDeriv);
self.assertEquals(3.17805386f, actual);
}
}

[TestMethod]
public void testSliceGrad()
{
var a = tf.tanh(tf.constant(new[] { 2f, 3f }, shape: new[] { 2, 1 }));
var b = tf.strided_slice(a,
tf.constant(new[] { 0 }, TF_DataType.TF_INT32, new[] { 1 }),
tf.constant(new[] { 1 }, TF_DataType.TF_INT32, new[] { 1 }),
tf.constant(new[] { 1 }, TF_DataType.TF_INT32, new[] { 1 })
);
var g = tf.gradients(b, a);
using (var sess = tf.Session())
{
var result = sess.run(new object[] { g, b });
var actualDeriv = result[0].GetData<float>()[0];
var actual = result[1].GetData<float>()[0];
self.assertEquals(1.5061177f, actualDeriv);
self.assertEquals(3.17805386f, actual);
}
}


[TestMethod]
public void testConcatGrad()
{
var a1 = tf.constant(new[] { 2f }, shape: new[] { 1 });
var a2 = tf.constant(new[] { 3f }, shape: new[] { 1 });
var a = tf.concat(new List<Tensor>(new[] {a1, a2}), 0);
var g = tf.gradients(a, a1);
using (var sess = tf.Session())
{
var result = sess.run(new object[] { g, a });
var actualDeriv = result[0].GetData<float>()[0];
var actual = result[1].GetData<float>()[0];
self.assertEquals(1f, actualDeriv);
self.assertEquals(2f, actual);
}
}

[Ignore("TODO")]
[TestMethod]


Loading…
Cancel
Save