Relative unit test in `OperationTest`.tags/v0.12
@@ -198,6 +198,9 @@ namespace Tensorflow | |||||
public static Tensor logical_or(Tensor x, Tensor y, string name = null) | public static Tensor logical_or(Tensor x, Tensor y, string name = null) | ||||
=> gen_math_ops.logical_or(x, y, name); | => gen_math_ops.logical_or(x, y, name); | ||||
public static Tensor logical_xor(Tensor x, Tensor y, string name = "LogicalXor") | |||||
=> gen_math_ops.logical_xor(x, y, name); | |||||
/// <summary> | /// <summary> | ||||
/// Clips tensor values to a specified min and max. | /// Clips tensor values to a specified min and max. | ||||
/// </summary> | /// </summary> | ||||
@@ -371,6 +371,14 @@ namespace Tensorflow | |||||
return _op.outputs[0]; | return _op.outputs[0]; | ||||
} | } | ||||
public static Tensor logical_xor(Tensor x, Tensor y, string name = "LogicalXor") | |||||
{ | |||||
return logical_and( | |||||
logical_or(x, y), | |||||
logical_not(logical_and(x, y)), | |||||
name); | |||||
} | |||||
public static Tensor squared_difference(Tensor x, Tensor y, string name = null) | 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 }); | var _op = _op_def_lib._apply_op_helper("SquaredDifference", name, args: new { x, y, name }); | ||||
@@ -162,6 +162,15 @@ namespace TensorFlowNET.UnitTest | |||||
var o = sess.run(d); | var o = sess.run(d); | ||||
Assert.IsTrue(o.array_equal(check)); | Assert.IsTrue(o.array_equal(check)); | ||||
} | } | ||||
d = tf.cast(tf.logical_xor(b, c), tf.int32); | |||||
check = np.array(new[] { 1, 1, 1, 1, 1, 1, 1, 1 }); | |||||
using (var sess = tf.Session()) | |||||
{ | |||||
var o = sess.run(d); | |||||
Assert.IsTrue(o.array_equal(check)); | |||||
} | |||||
} | } | ||||
[TestMethod] | [TestMethod] | ||||