Browse Source

Adding `logical_and` operator (#338)

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

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

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

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

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


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

@@ -350,6 +350,13 @@ namespace Tensorflow
return _op.outputs[0];
}
public static Tensor logical_and(Tensor x, Tensor y, string name = null)
{
var _op = _op_def_lib._apply_op_helper("LogicalAnd", name, args: new { x, y });
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 });


+ 16
- 0
test/TensorFlowNET.UnitTest/OperationsTest.cs View File

@@ -130,6 +130,22 @@ namespace TensorFlowNET.UnitTest
}
}

[TestMethod]
public void logicalAndTest()
{
var a = tf.constant(new[] {1f, 2f, 3f, 4f, -4f, -3f, -2f, -1f});
var b = tf.less(a, 0f);
var c = tf.greater(a, 0f);
var d = tf.cast(tf.logical_and(b, c), tf.int32);
var check = np.array(new[] { 0, 0, 0, 0, 0, 0, 0, 0 });

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

[TestMethod]
public void addOpTests()
{


Loading…
Cancel
Save