/***************************************************************************** Copyright 2018 The TensorFlow.NET Authors. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ******************************************************************************/ using Tensorflow.Operations; namespace Tensorflow { public partial class tensorflow { public Tensor abs(Tensor x, string name = null) => math_ops.abs(x, name); /// /// Computes acos of x element-wise. /// /// /// /// public Tensor acos(Tensor x, string name = null) => gen_math_ops.acos(x, name); /// /// Computes asin of x element-wise. /// /// /// /// public Tensor asin(Tensor x, string name = null) => gen_math_ops.asin(x, name); public Tensor add(Tx a, Ty b, string name = null) => gen_math_ops.add(a, b, name: name); /// /// Adds all input tensors element-wise. /// /// /// /// A `Tensor` of same shape and type as the elements of `inputs`. public Tensor add_n(Tensor[] inputs, string name = null) => math_ops.add_n(inputs, name: name); /// /// Computes atan of x element-wise. /// /// /// /// public Tensor atan(Tensor x, string name = null) => gen_math_ops.atan(x, name); public Tensor arg_max(Tensor input, int dimension, TF_DataType output_type = TF_DataType.TF_INT64, string name = null) => gen_math_ops.arg_max(input, dimension, output_type: output_type, name: name); public Tensor arg_min(Tensor input, int dimension, TF_DataType output_type = TF_DataType.TF_INT64, string name = null) => gen_math_ops.arg_min(input, dimension, output_type: output_type, name: name); public Tensor is_finite(Tensor input, string name = null) => gen_math_ops.is_finite(input, name); public Tensor is_nan(Tensor input, string name = null) => gen_math_ops.is_nan(input, name); /// /// Returns element-wise smallest integer not less than x. /// /// /// /// public Tensor ceil(Tensor x, string name = null) => gen_math_ops.ceil(x, name); /// /// Computes sin of x element-wise. /// /// /// /// public Tensor sin(Tensor x, string name = null) => gen_math_ops.sin(x, name); /// /// Computes hyperbolic sine of x element-wise. /// /// /// /// public Tensor sinh(Tensor x, string name = null) => gen_math_ops.sinh(x, name); /// /// Computes cos of x element-wise. /// /// /// /// public Tensor cos(Tensor x, string name = null) => gen_math_ops.cos(x, name); /// /// Computes hyperbolic cosine of x element-wise. /// /// /// /// public Tensor cosh(Tensor x, string name = null) => gen_math_ops.cosh(x, name); public Tensor tan(Tensor x, string name = null) => gen_math_ops.tan(x, name); public Tensor tanh(Tensor x, string name = null) => gen_math_ops.tanh(x, name); /// /// Returns element-wise largest integer not greater than x. /// /// /// /// public Tensor floor(Tensor x, string name = null) => gen_math_ops.floor(x, name); /// /// Returns the truth value of (x > y) element-wise. /// /// /// /// /// /// /// public Tensor greater(Tx x, Ty y, string name = null) => gen_math_ops.greater(x, y, name); /// /// Returns the truth value of (x >= y) element-wise. /// /// /// /// /// /// /// public Tensor greater_equal(Tx x, Ty y, string name = null) => gen_math_ops.greater_equal(x, y, name); /// /// Returns the truth value of (x < y) element-wise. /// /// /// /// /// /// /// public Tensor less(Tx x, Ty y, string name = null) => gen_math_ops.less(x, y, name); /// /// Computes the log of the absolute value of `Gamma(x)` element-wise. /// /// A `Tensor`. Must be one of the following types: `bfloat16`, `half`, `float32`, `float64`. /// A name for the operation (optional). /// A `Tensor`. Has the same type as `x`. public Tensor lgamma(Tensor x, string name = null) => gen_math_ops.lgamma(x, name: name); /// /// Returns the truth value of (x <= y) element-wise. /// /// /// /// /// /// /// public Tensor less_equal(Tx x, Ty y, string name = null) => gen_math_ops.less_equal(x, y, name); /// /// Computes natural logarithm of (1 + x) element-wise. /// /// /// /// public Tensor log1p(Tensor x, string name = null) => gen_math_ops.log1p(x, name); public Tensor logical_and(Tensor x, Tensor y, string name = null) => gen_math_ops.logical_and(x, y, name); public Tensor logical_not(Tensor x, string name = null) => gen_math_ops.logical_not(x, name); public Tensor logical_or(Tensor x, Tensor y, string name = null) => gen_math_ops.logical_or(x, y, name); public Tensor logical_xor(Tensor x, Tensor y, string name = "LogicalXor") => gen_math_ops.logical_xor(x, y, name); /// /// Clips tensor values to a specified min and max. /// /// /// /// /// /// public Tensor _clip_by_value(Tensor t, Tensor clip_value_min, Tensor clip_value_max, string name = null) => gen_math_ops._clip_by_value(t, clip_value_min, clip_value_max); /// /// Clips tensor values to a specified min and max. /// /// /// A Tensor. /// /// /// A 0-D (scalar) Tensor, or a Tensor with the same shape /// as t. The minimum value to clip by. /// /// /// A 0-D (scalar) Tensor, or a Tensor with the same shape /// as t. The maximum value to clip by. /// /// /// If specified, the created operation in the graph will be this one, otherwise it will be named 'ClipByValue'. /// /// /// A clipped Tensor with the same shape as input 't'. /// The Operation can be fetched from the resulting Tensor, by fetching the Operation property from the result. /// /// /// Given a tensor t, this operation returns a tensor of the same type and /// shape as t with its values clipped to clip_value_min and clip_value_max. /// Any values less than clip_value_min are set to clip_value_min. Any values /// greater than clip_value_max are set to clip_value_max. /// public Tensor clip_by_value (Tensor t, Tensor clip_value_min, Tensor clip_value_max, string name = "ClipByValue") => gen_ops.clip_by_value(t, clip_value_min, clip_value_max, name); public Tensor sub(Tensor a, Tensor b) => gen_math_ops.sub(a, b); public Tensor divide(Tensor a, Tensor b) => gen_math_ops.real_div(a, b); public Tensor sqrt(Tensor a, string name = null) => gen_math_ops.sqrt(a, name); public Tensor sign(Tensor a, string name = null) => gen_math_ops.sign(a, name); public Tensor subtract(Tensor x, T[] y, string name = null) where T : struct => gen_math_ops.sub(x, ops.convert_to_tensor(y, dtype: x.dtype.as_base_dtype(), name: "y"), name); public Tensor log(Tensor x, string name = null) => gen_math_ops.log(x, name); public Tensor equal(Tensor x, Tensor y, string name = null) => gen_math_ops.equal(x, y, name); /// /// Computes arctangent of `y/x` element-wise, respecting signs of the arguments. /// /// /// /// /// public Tensor atan2(Tensor y, Tensor x, string name = null) => gen_math_ops.atan2(y, x, name); /// /// Computes the maximum of elements across dimensions of a tensor. /// /// /// /// /// /// /// /// public Tensor max(Tx input, Ty axis, bool keep_dims = false, string name = null) => gen_math_ops._max(input, axis, keep_dims: keep_dims, name: name); /// /// Computes the minimum of elements across dimensions of a tensor. /// /// /// /// /// /// /// /// public Tensor min(Tx input, Ty axis, bool keep_dims = false, string name = null) => gen_math_ops._min(input, axis, keep_dims: keep_dims, name: name); /// /// Returns the max of x and y (i.e. x > y ? x : y) element-wise. /// /// /// /// /// /// /// public Tensor maximum(T1 x, T2 y, string name = null) => gen_math_ops.maximum(x, y, name: name); /// /// Returns the min of x and y (i.e. x < y ? x : y) element-wise. /// /// /// /// /// /// /// public Tensor minimum(T1 x, T2 y, string name = null) => gen_math_ops.minimum(x, y, name: name); public Tensor multiply(Tx x, Ty y) => gen_math_ops.mul(x, y); public Tensor negative(Tensor x, string name = null) => gen_math_ops.neg(x, name); /// /// Returns the truth value of (x != y) element-wise. /// /// /// /// /// A `Tensor` of type bool with the same size as that of x or y. public Tensor not_equal(Tx x, Ty y, string name = null) => math_ops.not_equal(x, y, name: name); /// /// Divides x / y elementwise (using Python 2 division operator semantics). /// /// /// /// /// public Tensor div(Tensor x, Tensor y, string name = null) => math_ops.div(x, y, name: name); public Tensor divide(Tensor x, T[] y, string name = null) where T : struct => x / ops.convert_to_tensor(y, dtype: x.dtype.as_base_dtype(), name: "y"); public Tensor pow(T1 x, T2 y) => gen_math_ops.pow(x, y); /// /// Divides `x / y` elementwise, rounding toward the most negative integer. /// /// /// /// /// `x / y` rounded down. public Tensor floordiv(Tensor x, Tensor y, string name = null) => math_ops.floordiv(x, y, name: name); /// /// Divides x / y elementwise (using Python 3 division operator semantics). /// /// /// /// /// `x / y` evaluated in floating point. public static Tensor truediv(Tensor x, Tensor y, string name = null) => math_ops.truediv(x, y, name: name); public Tensor range(object start, object limit = null, object delta = null, TF_DataType dtype = TF_DataType.DtInvalid, string name = "range") => math_ops.range(start, limit: limit, delta: delta, dtype: dtype, name: name); /// /// Computes the "logical or" of elements across dimensions of a tensor. /// /// The boolean tensor to reduce. /// The dimensions to reduce. /// If true, retains reduced dimensions with length 1. /// /// The reduced tensor. public Tensor reduce_any(Tensor input_tensor, int[] axis = null, bool keepdims = false, string name = null) => math_ops.reduce_any(input_tensor, axis: axis, keepdims: keepdims, name: name); public Tensor reduce_any(Tensor input_tensor, int axis = 0, bool keepdims = false, string name = null) => math_ops.reduce_any(input_tensor, axis: new[] { axis }, keepdims: keepdims, name: name); /// /// Computes the "logical and" of elements across dimensions of a tensor. /// /// /// /// /// /// The reduced tensor. public Tensor reduce_all(Tensor input_tensor, int[] axis = null, bool keepdims = false, string name = null) => math_ops.reduce_all(input_tensor, axis: axis, keepdims: keepdims, name: name); /// /// Computes the product of elements across dimensions of a tensor. /// /// /// /// /// /// public Tensor reduce_prod(Tensor input_tensor, int[] axis = null, bool keepdims = false, string name = null) => math_ops.reduce_prod(input_tensor, axis: axis, keepdims: keepdims, name: name); /// /// Computes the sum of elements across dimensions of a tensor. /// /// /// /// public Tensor reduce_sum(Tensor input, int? axis = null, int? reduction_indices = null, bool keepdims = false, string name = null) { if(!axis.HasValue && reduction_indices.HasValue) return math_ops.reduce_sum(input, reduction_indices.Value); else if (axis.HasValue && !reduction_indices.HasValue) return math_ops.reduce_sum(input, axis.Value); return math_ops.reduce_sum(input, keepdims: keepdims, name: name); } public Tensor reduce_sum(Tensor input, int[] axis, int? reduction_indices = null, bool keepdims = false, string name = null) => math_ops.reduce_sum(input, axis, keepdims: keepdims, name: name); /// /// Computes the maximum of elements across dimensions of a tensor. /// /// /// /// /// /// public Tensor reduce_max(Tensor input_tensor, int[] axis = null, bool keepdims = false, string name = null) => math_ops.reduce_max(input_tensor, axis, keepdims, name); public Tensor reduce_min(Tensor input_tensor, int[] axis = null, bool keepdims = false, string name = null) => math_ops.reduce_min(input_tensor, axis, keepdims, name); public Tensor sigmoid(T x, string name = null) => math_ops.sigmoid(x, name: name); public Tensor sum(Tensor input, int axis, bool keep_dims = false, string name = null) => gen_math_ops._sum(input, axis, keep_dims: keep_dims, name: name); public Tensor reduce_mean(Tensor input_tensor, int[] axis = null, bool keepdims = false, string name = null, int? reduction_indices = null) => math_ops.reduce_mean(input_tensor, axis: axis, keepdims: keepdims, name: name, reduction_indices: reduction_indices); public Tensor round(Tensor x, string name = null) => gen_math_ops.round(x, name: name); public Tensor cast(Tensor x, TF_DataType dtype = TF_DataType.DtInvalid, string name = null) => math_ops.cast(x, dtype, name); public 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 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); public Tensor square(Tensor x, string name = null) => gen_math_ops.square(x, name: name); } }