@@ -348,6 +348,9 @@ namespace Tensorflow | |||||
public static Tensor cast(Tensor x, TF_DataType dtype = TF_DataType.DtInvalid, string name = null) | public static Tensor cast(Tensor x, TF_DataType dtype = TF_DataType.DtInvalid, string name = null) | ||||
=> math_ops.cast(x, dtype, name); | => math_ops.cast(x, dtype, name); | ||||
public static Tensor cumsum(Tensor x, int axis = 0, bool exclusive = false, bool reverse = false, string name = null) | |||||
=> math_ops.cumsum(x, axis: axis, exclusive: exclusive, reverse: reverse, name: name); | |||||
public static Tensor argmax(Tensor input, int axis = -1, string name = null, int? dimension = null, TF_DataType output_type = TF_DataType.TF_INT64) | public static Tensor argmax(Tensor input, int axis = -1, string name = null, int? dimension = null, TF_DataType output_type = TF_DataType.TF_INT64) | ||||
=> gen_math_ops.arg_max(input, axis, name: name, output_type: output_type); | => gen_math_ops.arg_max(input, axis, name: name, output_type: output_type); | ||||
@@ -238,6 +238,13 @@ namespace Tensorflow | |||||
return _op.outputs[0]; | return _op.outputs[0]; | ||||
} | } | ||||
public static Tensor cumsum(Tensor x, int axis = 0, bool exclusive = false, bool reverse = false, string name = null) | |||||
{ | |||||
var _op = _op_def_lib._apply_op_helper("Cumsum", name, args: new { x, axis, exclusive, reverse }); | |||||
return _op.outputs[0]; | |||||
} | |||||
/// <summary> | /// <summary> | ||||
/// Computes the sum along segments of a tensor. | /// Computes the sum along segments of a tensor. | ||||
/// </summary> | /// </summary> | ||||
@@ -80,6 +80,17 @@ namespace Tensorflow | |||||
}); | }); | ||||
} | } | ||||
public static Tensor cumsum(Tensor x, int axis = 0, bool exclusive = false, bool reverse = false, string name = null) | |||||
{ | |||||
return with(ops.name_scope(name, "Cumsum", new {x}), scope => | |||||
{ | |||||
name = scope; | |||||
x = ops.convert_to_tensor(x, name: "x"); | |||||
return gen_math_ops.cumsum(x, axis: axis, exclusive: exclusive, reverse: reverse, name: name); | |||||
}); | |||||
} | |||||
/// <summary> | /// <summary> | ||||
/// Computes Psi, the derivative of Lgamma (the log of the absolute value of | /// Computes Psi, the derivative of Lgamma (the log of the absolute value of | ||||
/// `Gamma(x)`), element-wise. | /// `Gamma(x)`), element-wise. | ||||
@@ -89,6 +89,47 @@ namespace TensorFlowNET.UnitTest | |||||
} | } | ||||
} | } | ||||
[TestMethod] | |||||
public void cumSumTest() | |||||
{ | |||||
var a = tf.constant(new[] { 1, 1, 2, 3, 4, 5 }); | |||||
var b = tf.cumsum(a); | |||||
var check = np.array(1, 2, 4, 7, 11, 16); | |||||
using (var sess = tf.Session()) | |||||
{ | |||||
var o = sess.run(b); | |||||
Assert.IsTrue(o.array_equal(check)); | |||||
} | |||||
b = tf.cumsum(a, exclusive: true); | |||||
check = np.array(0, 1, 2, 4, 7, 11); | |||||
using (var sess = tf.Session()) | |||||
{ | |||||
var o = sess.run(b); | |||||
Assert.IsTrue(o.array_equal(check)); | |||||
} | |||||
b = tf.cumsum(a, reverse: true); | |||||
check = np.array(16, 15, 14, 12, 9, 5); | |||||
using (var sess = tf.Session()) | |||||
{ | |||||
var o = sess.run(b); | |||||
Assert.IsTrue(o.array_equal(check)); | |||||
} | |||||
b = tf.cumsum(a, exclusive:true, reverse: true); | |||||
check = np.array(15, 14, 12, 9, 5, 0); | |||||
using (var sess = tf.Session()) | |||||
{ | |||||
var o = sess.run(b); | |||||
Assert.IsTrue(o.array_equal(check)); | |||||
} | |||||
} | |||||
[TestMethod] | [TestMethod] | ||||
public void addOpTests() | public void addOpTests() | ||||
{ | { | ||||