|
@@ -0,0 +1,47 @@ |
|
|
|
|
|
using FluentAssertions; |
|
|
|
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting; |
|
|
|
|
|
using NumSharp; |
|
|
|
|
|
using System.Linq; |
|
|
|
|
|
using Tensorflow; |
|
|
|
|
|
using static Tensorflow.Binding; |
|
|
|
|
|
|
|
|
|
|
|
namespace Tensorflow.UnitTest.TF_API |
|
|
|
|
|
{ |
|
|
|
|
|
[TestClass] |
|
|
|
|
|
public class GradientTest |
|
|
|
|
|
{ |
|
|
|
|
|
[TestMethod] |
|
|
|
|
|
public void GradientFloatTest() |
|
|
|
|
|
{ |
|
|
|
|
|
var x = tf.Variable(3.0, dtype: TF_DataType.TF_FLOAT); |
|
|
|
|
|
using var tape = tf.GradientTape(); |
|
|
|
|
|
var y = tf.square(x); |
|
|
|
|
|
var y_grad = tape.gradient(y, x); |
|
|
|
|
|
Assert.AreEqual(9.0f, (float)y); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[TestMethod] |
|
|
|
|
|
public void GradientDefaultTest() |
|
|
|
|
|
{//error 1#: Variable default type |
|
|
|
|
|
var x = tf.Variable(3.0); |
|
|
|
|
|
using var tape = tf.GradientTape(); |
|
|
|
|
|
var y = tf.square(x); |
|
|
|
|
|
var y_grad = tape.gradient(y, x); |
|
|
|
|
|
Assert.AreEqual(9.0, (double)y); |
|
|
|
|
|
} |
|
|
|
|
|
[TestMethod] |
|
|
|
|
|
public void GradientDoubleTest() |
|
|
|
|
|
{//error 2#: Variable double type |
|
|
|
|
|
var x = tf.Variable(3.0, dtype: TF_DataType.TF_DOUBLE); |
|
|
|
|
|
using var tape = tf.GradientTape(); |
|
|
|
|
|
var y = tf.square(x); |
|
|
|
|
|
var y_grad = tape.gradient(y, x); |
|
|
|
|
|
Assert.AreEqual(9.0, (double)y); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |