Browse Source

Adding `logical_not` operator (#343)

Relative unit test in `OperationTest`.
tags/v0.12
Antonio Cifonelli Haiping 6 years ago
parent
commit
bad9aba49e
3 changed files with 20 additions and 1 deletions
  1. +3
    -0
      src/TensorFlowNET.Core/APIs/tf.math.cs
  2. +7
    -0
      src/TensorFlowNET.Core/Operations/gen_math_ops.cs
  3. +10
    -1
      test/TensorFlowNET.UnitTest/OperationsTest.cs

+ 3
- 0
src/TensorFlowNET.Core/APIs/tf.math.cs View File

@@ -192,6 +192,9 @@ namespace Tensorflow
public static Tensor logical_and(Tensor x, Tensor y, string name = null)
=> gen_math_ops.logical_and(x, y, name);

public static Tensor logical_not(Tensor x, string name = null)
=> gen_math_ops.logical_not(x, name);

/// <summary>
/// Clips tensor values to a specified min and max.
/// </summary>


+ 7
- 0
src/TensorFlowNET.Core/Operations/gen_math_ops.cs View File

@@ -357,6 +357,13 @@ namespace Tensorflow
return _op.outputs[0];
}
public static Tensor logical_not(Tensor x, string name = null)
{
var _op = _op_def_lib._apply_op_helper("LogicalNot", name, args: new { x });
return _op.outputs[0];
}
public static Tensor squared_difference(Tensor x, Tensor y, string name = null)
{
var _op = _op_def_lib._apply_op_helper("SquaredDifference", name, args: new { x, y, name });


+ 10
- 1
test/TensorFlowNET.UnitTest/OperationsTest.cs View File

@@ -131,7 +131,7 @@ namespace TensorFlowNET.UnitTest
}

[TestMethod]
public void logicalAndTest()
public void logicalOpsTest()
{
var a = tf.constant(new[] {1f, 2f, 3f, 4f, -4f, -3f, -2f, -1f});
var b = tf.less(a, 0f);
@@ -144,6 +144,15 @@ namespace TensorFlowNET.UnitTest
var o = sess.run(d);
Assert.IsTrue(o.array_equal(check));
}

d = tf.cast(tf.logical_not(b), tf.int32);
check = np.array(new[] { 1, 1, 1, 1, 0, 0, 0, 0 });

using (var sess = tf.Session())
{
var o = sess.run(d);
Assert.IsTrue(o.array_equal(check));
}
}

[TestMethod]


Loading…
Cancel
Save