Module: TensorStream::Ops
- Included in:
- TensorStream
- Defined in:
- lib/tensor_stream/ops.rb
Overview
Class that defines all available ops supported by TensorStream
Constant Summary collapse
- FLOATING_POINT_TYPES =
i[float32 float64 float].freeze
- INTEGER_TYPES =
i[int32 int int64].freeze
- NUMERIC_TYPES =
FLOATING_POINT_TYPES + INTEGER_TYPES
Instance Method Summary collapse
-
#abs(input, name: nil) ⇒ Object
Computes the absolute value of a tensor.
-
#add(input_a, input_b, name: nil) ⇒ Object
Returns x + y element-wise.
-
#argmax(input, axis = nil, name: nil, dimension: nil, output_type: :int32) ⇒ Object
Returns the index with the largest value across axes of a tensor.
-
#argmin(input, axis = nil, name: nil, dimension: nil, output_type: :int32) ⇒ Object
Returns the index with the smallest value across axes of a tensor.
-
#cast(input, dtype, name: nil) ⇒ Object
Casts a tensor to a new type.
-
#ceil(input, name: nil) ⇒ Object
Returns element-wise smallest integer in not less than x.
-
#check_numerics(tensor, message, name: nil) ⇒ Object
Checks a tensor for NaN and Inf values.
-
#concat(values, axis, name: 'concat') ⇒ Object
Concatenates tensors along one dimension.
-
#cond(pred, true_fn, false_fn, name: nil) ⇒ Object
Return true_fn() if the predicate pred is true else false_fn().
-
#cos(input, name: nil) ⇒ Object
Computes cos of input element-wise.
-
#div(input_a, input_b, name: nil) ⇒ Object
Divides x / y elementwise This operation supports broadcasting.
-
#equal(input_a, input_b, name: nil) ⇒ Object
Returns the truth value of (x == y) element-wise.
-
#exp(input, name: nil) ⇒ Object
Computes exponential of x element-wise.
-
#eye(num_rows, num_columns: nil, dtype: :float32, name: nil) ⇒ Object
Construct an identity matrix.
-
#floor(input, name: nil) ⇒ Object
Returns element-wise largest integer not greater than x.
-
#glorot_uniform_initializer(seed: nil, dtype: nil) ⇒ Object
The Glorot uniform initializer, also called Xavier uniform initializer.
-
#gradients(ys, wrt_xs, name: 'gradients', stop_gradients: nil) ⇒ Object
Constructs symbolic derivatives of ys of input w.r.t.
-
#greater(input_a, input_b, name: nil) ⇒ Object
Returns the truth value of (x > y) element-wise.
-
#greater_equal(input_a, input_b, name: nil) ⇒ Object
Returns the truth value of (x >= y) element-wise.
-
#identity(input, name: nil) ⇒ Object
Return a tensor with the same shape and contents as input.
-
#less(input_a, input_b, name: nil) ⇒ Object
Returns the truth value of (x < y) element-wise.
-
#less_equal(input_a, input_b, name: nil) ⇒ Object
Returns the truth value of (x <= y) element-wise.
-
#log(input, name: nil) ⇒ Object
Computes natural logarithm of x element-wise.
-
#log1p(input, name: nil) ⇒ Object
Computes natural logarithm of (1 + x) element-wise.
-
#logical_and(input_a, input_b, name: nil) ⇒ Object
Returns the truth value of x AND y element-wise.
-
#matmul(input_a, input_b, transpose_a: false, transpose_b: false, name: nil) ⇒ Object
Multiplies matrix a by matrix b, producing a * b.
-
#max(input_a, input_b, name: nil) ⇒ Object
Returns the max of x and y (i.e. x > y ? x : y) element-wise.
-
#maximum(input_a, input_b, name: nil) ⇒ Object
Returns the max of x and y (i.e. x > y ? x : y) element-wise.
-
#mul(input_a, input_b, name: nil) ⇒ Object
Returns x * y element-wise.
-
#multiply(input_a, input_b, name: nil) ⇒ Object
Returns x * y element-wise.
-
#negate(input, name: nil) ⇒ Object
Computes numerical negative value element-wise.
-
#negative(input, name: nil) ⇒ Object
Computes numerical negative value element-wise.
-
#not_equal(input_a, input_b, name: nil) ⇒ Object
Returns the truth value of (x != y) element-wise.
-
#ones(shape, dtype: :float32, name: nil) ⇒ Object
Creates a tensor with all elements set to 1.
-
#ones_like(tensor, dtype: nil, name: nil) ⇒ Object
Creates a tensor with all elements set to 1.
-
#pad(tensor, paddings, mode: 'CONSTANT', name: nil) ⇒ Object
Pads a tensor.
-
#pow(input_a, input_e, name: nil) ⇒ Object
Computes the power of one value to another.
-
#print(input, data, message: nil, name: nil) ⇒ Object
Prints a list of tensors.
-
#random_normal(shape, dtype: :float32, mean: 0.0, stddev: 1.0, seed: nil, name: nil) ⇒ Object
Outputs random values from a normal distribution.
-
#random_uniform(shape, dtype: :float32, minval: 0, maxval: 1, seed: nil, name: nil) ⇒ Object
Outputs random values from a uniform distribution.
-
#random_uniform_initializer(minval: 0, maxval: 1, seed: nil, dtype: nil) ⇒ Object
Initializer that generates tensors with a uniform distribution.
-
#rank(input, name: nil) ⇒ Object
Returns the rank of a tensor.
-
#reciprocal(tensor, name: nil) ⇒ Object
Computes the reciprocal of x element-wise.
-
#reduce_mean(input_tensor, axis = nil, keepdims: false, name: nil) ⇒ Object
Computes the mean of elements across dimensions of a tensor.
-
#reduce_prod(input, axis = nil, keepdims: false, name: nil) ⇒ Object
Computes the product of elements across dimensions of a tensor.
-
#reduce_sum(input_tensor, axis = nil, keepdims: false, name: nil) ⇒ Object
Computes the sum of elements across dimensions of a tensor.
-
#reshape(tensor, shape, name: nil) ⇒ Object
Reshapes a tensor.
-
#round(tensor, name: nil) ⇒ Object
Rounds the values of a tensor to the nearest integer, element-wise.
-
#shape(input, name: nil, out_type: :int32) ⇒ Object
This operation returns a 1-D integer tensor representing the shape of input.
-
#sigmoid(input, name: nil) ⇒ Object
Computes sigmoid of x element-wise.
-
#sign(input, name: nil) ⇒ Object
Returns an element-wise indication of the sign of a number.
-
#sin(input, name: nil) ⇒ Object
Computes sin of input element-wise.
-
#slice(input, start, size, name: nil) ⇒ Object
Extracts a slice from a tensor.
-
#sqrt(input, name: nil) ⇒ Object
Computes sqrt of input element-wise.
-
#square(tensor, name: nil) ⇒ Object
Computes square of x element-wise.
-
#stop_gradient(tensor, options = {}) ⇒ Object
Stops gradient computation.
-
#sub(input_a, input_b, name: nil) ⇒ Object
Returns x - y element-wise.
-
#subtract(input_a, input_b, name: nil) ⇒ Object
Returns x - y element-wise.
-
#tan(input, name: nil) ⇒ Object
Computes tan of input element-wise.
-
#tanh(input, name: nil) ⇒ Object
Computes tanh of input element-wise.
-
#tile(input, multiples, name: nil) ⇒ Object
Constructs a tensor by tiling a given tensor.
-
#transpose(tensor, perm: nil, name: 'transpose') ⇒ Object
Transposes a.
-
#where(condition, true_t = nil, false_t = nil, name: nil) ⇒ Object
Return the elements, either from x or y, depending on the condition.
-
#zeros(shape, dtype: :float32, name: nil) ⇒ Object
Creates a tensor with all elements set to zero.
-
#zeros_initializer(dtype: nil) ⇒ Object
initializer that generates tensors initialized to 0.
-
#zeros_like(tensor, dtype: nil, name: nil) ⇒ Object
reates a tensor with all elements set to zero.
Instance Method Details
#abs(input, name: nil) ⇒ Object
Computes the absolute value of a tensor.
411 412 413 |
# File 'lib/tensor_stream/ops.rb', line 411 def abs(input, name: nil) _op(:abs, input, nil, name: name) end |
#add(input_a, input_b, name: nil) ⇒ Object
Returns x + y element-wise.
This operation supports broadcasting
276 277 278 279 |
# File 'lib/tensor_stream/ops.rb', line 276 def add(input_a, input_b, name: nil) input_a, input_b = check_data_types(input_a, input_b) _op(:add, input_a, input_b, name: name) end |
#argmax(input, axis = nil, name: nil, dimension: nil, output_type: :int32) ⇒ Object
Returns the index with the largest value across axes of a tensor.
Argmuments
input A Tensor. Must be one of the following types: float32, float64, int32, int16 axis Describes which axis of the input Tensor to reduce across. For vectors, use axis = 0 output_type Output data type defaults to int32
16 17 18 |
# File 'lib/tensor_stream/ops.rb', line 16 def argmax(input, axis = nil, name: nil, dimension: nil, output_type: :int32) _op(:argmax, input, nil, axis: axis, name: name, dimension: dimension, data_type: output_type) end |
#argmin(input, axis = nil, name: nil, dimension: nil, output_type: :int32) ⇒ Object
Returns the index with the smallest value across axes of a tensor.
Argmuments
input A Tensor. Must be one of the following types: float32, float64, int32, int16 axis Describes which axis of the input Tensor to reduce across. For vectors, use axis = 0 output_type Output data type defaults to int32
28 29 30 |
# File 'lib/tensor_stream/ops.rb', line 28 def argmin(input, axis = nil, name: nil, dimension: nil, output_type: :int32) _op(:argmin, input, nil, axis: axis, name: name, dimension: dimension, data_type: output_type) end |
#cast(input, dtype, name: nil) ⇒ Object
Casts a tensor to a new type.
319 320 321 |
# File 'lib/tensor_stream/ops.rb', line 319 def cast(input, dtype, name: nil) _op(:cast, input, nil, data_type: dtype, name: name) end |
#ceil(input, name: nil) ⇒ Object
Returns element-wise smallest integer in not less than x
158 159 160 161 |
# File 'lib/tensor_stream/ops.rb', line 158 def ceil(input, name: nil) check_allowed_types(input, FLOATING_POINT_TYPES) _op(:ceil, input, name: name) end |
#check_numerics(tensor, message, name: nil) ⇒ Object
Checks a tensor for NaN and Inf values. When run, reports an InvalidArgument error if tensor has any values that are not a number (NaN) or infinity (Inf). Otherwise, passes tensor as-is.
512 513 514 |
# File 'lib/tensor_stream/ops.rb', line 512 def check_numerics(tensor, , name: nil) _op(:check_numerics, tensor, nil, message: , name: name) end |
#concat(values, axis, name: 'concat') ⇒ Object
Concatenates tensors along one dimension.
229 230 231 |
# File 'lib/tensor_stream/ops.rb', line 229 def concat(values, axis, name: 'concat') _op(:concat, values, nil, axis: axis, name: name) end |
#cond(pred, true_fn, false_fn, name: nil) ⇒ Object
Return true_fn() if the predicate pred is true else false_fn().
262 263 264 |
# File 'lib/tensor_stream/ops.rb', line 262 def cond(pred, true_fn, false_fn, name: nil) _op(:cond, true_fn, false_fn, pred: pred, name: name) end |
#cos(input, name: nil) ⇒ Object
Computes cos of input element-wise.
432 433 434 435 |
# File 'lib/tensor_stream/ops.rb', line 432 def cos(input, name: nil) check_allowed_types(input, FLOATING_POINT_TYPES) _op(:cos, input, nil, name: name) end |
#div(input_a, input_b, name: nil) ⇒ Object
Divides x / y elementwise This operation supports broadcasting
397 398 399 400 |
# File 'lib/tensor_stream/ops.rb', line 397 def div(input_a, input_b, name: nil) input_a, input_b = check_data_types(input_a, input_b) _op(:div, input_a, input_b, name: name) end |
#equal(input_a, input_b, name: nil) ⇒ Object
Returns the truth value of (x == y) element-wise.
345 346 347 348 |
# File 'lib/tensor_stream/ops.rb', line 345 def equal(input_a, input_b, name: nil) input_a, input_b = check_data_types(input_a, input_b) _op(:equal, input_a, input_b, name: name) end |
#exp(input, name: nil) ⇒ Object
Computes exponential of x element-wise.
474 475 476 477 |
# File 'lib/tensor_stream/ops.rb', line 474 def exp(input, name: nil) check_allowed_types(input, FLOATING_POINT_TYPES) _op(:exp, input, nil, name: name) end |
#eye(num_rows, num_columns: nil, dtype: :float32, name: nil) ⇒ Object
Construct an identity matrix
85 86 87 |
# File 'lib/tensor_stream/ops.rb', line 85 def eye(num_rows, num_columns: nil, dtype: :float32, name: nil) _op(:eye, num_rows, num_columns || num_rows, data_type: dtype, name: name) end |
#floor(input, name: nil) ⇒ Object
Returns element-wise largest integer not greater than x.
151 152 153 154 |
# File 'lib/tensor_stream/ops.rb', line 151 def floor(input, name: nil) check_allowed_types(input, FLOATING_POINT_TYPES) _op(:floor, input, name: name) end |
#glorot_uniform_initializer(seed: nil, dtype: nil) ⇒ Object
The Glorot uniform initializer, also called Xavier uniform initializer.
It draws samples from a uniform distribution within [-limit, limit] where limit is sqrt(6 / (fan_in + fan_out)) where fan_in is the number of input units in the weight tensor and fan_out is the number of output units in the weight tensor.
119 120 121 |
# File 'lib/tensor_stream/ops.rb', line 119 def glorot_uniform_initializer(seed: nil, dtype: nil) TensorStream::Initializer.new(-> { _op(:glorot_uniform, nil, nil, seed: seed, data_type: dtype) }) end |
#gradients(ys, wrt_xs, name: 'gradients', stop_gradients: nil) ⇒ Object
Constructs symbolic derivatives of ys of input w.r.t. x in wrt_xs.
ys and xs are each a Tensor or a list of tensors. grad_ys is a list of Tensor, holding the gradients received by the ys. The list must be the same length as ys.
Arguments: ys : A Tensor or list of tensors to be differentiated. wrt_xs : A Tensor or list of tensors to be used for differentiation. stop_gradients: Optional. A Tensor or list of tensors not to differentiate through
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/tensor_stream/ops.rb', line 41 def gradients(ys, wrt_xs, name: 'gradients', stop_gradients: nil) gs = wrt_xs.collect do |x| stops = stop_gradients ? stop_gradients.map(&:name).join('_') : '' gradient_program_name = "grad_#{ys.name}_#{x.name}_#{stops}".to_sym tensor_program = if ys.graph.node_added?(gradient_program_name) ys.graph.get_node(gradient_program_name) else ys.graph.name_scope("gradient_wrt_#{x.name}") do derivative_ops = TensorStream::MathGradients.derivative(ys, x, graph: ys.graph, stop_gradients: stop_gradients) ys.graph.add_node!(gradient_program_name, derivative_ops) end end tensor_program end TensorStream.group(gs) end |
#greater(input_a, input_b, name: nil) ⇒ Object
Returns the truth value of (x > y) element-wise. This operation supports broadcasting
181 182 183 184 |
# File 'lib/tensor_stream/ops.rb', line 181 def greater(input_a, input_b, name: nil) input_a, input_b = check_data_types(input_a, input_b) _op(:greater, input_a, input_b, name: name) end |
#greater_equal(input_a, input_b, name: nil) ⇒ Object
Returns the truth value of (x >= y) element-wise.
This operation supports broadcasting
190 191 192 193 |
# File 'lib/tensor_stream/ops.rb', line 190 def greater_equal(input_a, input_b, name: nil) input_a, input_b = check_data_types(input_a, input_b) _op(:greater_equal, input_a, input_b, name: name) end |
#identity(input, name: nil) ⇒ Object
Return a tensor with the same shape and contents as input.
374 375 376 |
# File 'lib/tensor_stream/ops.rb', line 374 def identity(input, name: nil) _op(:identity, input, nil, name: name) end |
#less(input_a, input_b, name: nil) ⇒ Object
Returns the truth value of (x < y) element-wise. This operation supports broadcasting
166 167 168 169 |
# File 'lib/tensor_stream/ops.rb', line 166 def less(input_a, input_b, name: nil) input_a, input_b = check_data_types(input_a, input_b) _op(:less, input_a, input_b, name: name) end |
#less_equal(input_a, input_b, name: nil) ⇒ Object
Returns the truth value of (x <= y) element-wise.
197 198 199 200 |
# File 'lib/tensor_stream/ops.rb', line 197 def less_equal(input_a, input_b, name: nil) input_a, input_b = check_data_types(input_a, input_b) _op(:less_equal, input_a, input_b, name: name) end |
#log(input, name: nil) ⇒ Object
Computes natural logarithm of x element-wise.
460 461 462 463 |
# File 'lib/tensor_stream/ops.rb', line 460 def log(input, name: nil) check_allowed_types(input, FLOATING_POINT_TYPES) _op(:log, input, nil, name: name) end |
#log1p(input, name: nil) ⇒ Object
Computes natural logarithm of (1 + x) element-wise.
467 468 469 470 |
# File 'lib/tensor_stream/ops.rb', line 467 def log1p(input, name: nil) check_allowed_types(input, FLOATING_POINT_TYPES) _op(:log1p, input, nil, name: name) end |
#logical_and(input_a, input_b, name: nil) ⇒ Object
Returns the truth value of x AND y element-wise.
173 174 175 176 |
# File 'lib/tensor_stream/ops.rb', line 173 def logical_and(input_a, input_b, name: nil) input_a, input_b = check_data_types(input_a, input_b) _op(:logical_and, input_a, input_b, name: name) end |
#matmul(input_a, input_b, transpose_a: false, transpose_b: false, name: nil) ⇒ Object
Multiplies matrix a by matrix b, producing a * b. The inputs must, following any transpositions, be tensors of rank 2 .
489 490 491 492 493 494 |
# File 'lib/tensor_stream/ops.rb', line 489 def matmul(input_a, input_b, transpose_a: false, transpose_b: false, name: nil) input_a, input_b = check_data_types(input_a, input_b) _op(:matmul, input_a, input_b, transpose_a: transpose_a, transpose_b: transpose_b, name: name) end |
#max(input_a, input_b, name: nil) ⇒ Object
Returns the max of x and y (i.e. x > y ? x : y) element-wise.
301 302 303 304 305 306 |
# File 'lib/tensor_stream/ops.rb', line 301 def max(input_a, input_b, name: nil) check_allowed_types(input_a, NUMERIC_TYPES) check_allowed_types(input_b, NUMERIC_TYPES) input_a, input_b = check_data_types(input_a, input_b) _op(:max, input_a, input_b, name: name) end |
#maximum(input_a, input_b, name: nil) ⇒ Object
Returns the max of x and y (i.e. x > y ? x : y) element-wise.
310 311 312 313 314 315 |
# File 'lib/tensor_stream/ops.rb', line 310 def maximum(input_a, input_b, name: nil) check_allowed_types(input_a, NUMERIC_TYPES) check_allowed_types(input_b, NUMERIC_TYPES) input_a, input_b = check_data_types(input_a, input_b) max(input_a, input_b, name: name) end |
#mul(input_a, input_b, name: nil) ⇒ Object
Returns x * y element-wise. This operation supports broadcasting
389 390 391 392 |
# File 'lib/tensor_stream/ops.rb', line 389 def mul(input_a, input_b, name: nil) input_a, input_b = check_data_types(input_a, input_b) _op(:mul, input_a, input_b, name: name) end |
#multiply(input_a, input_b, name: nil) ⇒ Object
Returns x * y element-wise. This operation supports broadcasting
381 382 383 384 |
# File 'lib/tensor_stream/ops.rb', line 381 def multiply(input_a, input_b, name: nil) input_a, input_b = check_data_types(input_a, input_b) _op(:mul, input_a, input_b, name: name) end |
#negate(input, name: nil) ⇒ Object
Computes numerical negative value element-wise.
333 334 335 |
# File 'lib/tensor_stream/ops.rb', line 333 def negate(input, name: nil) _op(:negate, input, nil, name: name) end |
#negative(input, name: nil) ⇒ Object
Computes numerical negative value element-wise.
339 340 341 |
# File 'lib/tensor_stream/ops.rb', line 339 def negative(input, name: nil) negate(input, name: name) end |
#not_equal(input_a, input_b, name: nil) ⇒ Object
Returns the truth value of (x != y) element-wise. This ops supports broadcasting
353 354 355 356 |
# File 'lib/tensor_stream/ops.rb', line 353 def not_equal(input_a, input_b, name: nil) input_a, input_b = check_data_types(input_a, input_b) _op(:not_equal, input_a, input_b, name: name) end |
#ones(shape, dtype: :float32, name: nil) ⇒ Object
Creates a tensor with all elements set to 1.
145 146 147 |
# File 'lib/tensor_stream/ops.rb', line 145 def ones(shape, dtype: :float32, name: nil) _op(:ones, shape, nil, data_type: dtype, name: name) end |
#ones_like(tensor, dtype: nil, name: nil) ⇒ Object
Creates a tensor with all elements set to 1. Given a single tensor (tensor), this operation returns a tensor of the same type and shape as tensor with all elements set to 1. Optionally, you can specify a new type (dtype) for the returned tensor.
368 369 370 |
# File 'lib/tensor_stream/ops.rb', line 368 def ones_like(tensor, dtype: nil, name: nil) _op(:ones_like, tensor, nil, data_type: dtype, name: name) end |
#pad(tensor, paddings, mode: 'CONSTANT', name: nil) ⇒ Object
Pads a tensor. This operation pads a tensor according to the paddings you specify.
505 506 507 |
# File 'lib/tensor_stream/ops.rb', line 505 def pad(tensor, paddings, mode: 'CONSTANT', name: nil) _op(:pad, tensor, nil, paddings: paddings, mode: mode, name: name) end |
#pow(input_a, input_e, name: nil) ⇒ Object
Computes the power of one value to another.
404 405 406 407 |
# File 'lib/tensor_stream/ops.rb', line 404 def pow(input_a, input_e, name: nil) input_a, input_e = check_data_types(input_a, input_e) _op(:pow, input_a, input_e, name: name) end |
#print(input, data, message: nil, name: nil) ⇒ Object
Prints a list of tensors.
This is an identity op (behaves like tf.identity) with the side effect of printing data when evaluating.
327 328 329 |
# File 'lib/tensor_stream/ops.rb', line 327 def print(input, data, message: nil, name: nil) _op(:print, input, data, message: , name: name) end |
#random_normal(shape, dtype: :float32, mean: 0.0, stddev: 1.0, seed: nil, name: nil) ⇒ Object
Outputs random values from a normal distribution.
70 71 72 73 |
# File 'lib/tensor_stream/ops.rb', line 70 def random_normal(shape, dtype: :float32, mean: 0.0, stddev: 1.0, seed: nil, name: nil) = { shape: shape, dtype: dtype, mean: mean, stddev: stddev, seed: seed, name: name } _op(:random_normal, nil, nil, ) end |
#random_uniform(shape, dtype: :float32, minval: 0, maxval: 1, seed: nil, name: nil) ⇒ Object
Outputs random values from a uniform distribution.
63 64 65 66 |
# File 'lib/tensor_stream/ops.rb', line 63 def random_uniform(shape, dtype: :float32, minval: 0, maxval: 1, seed: nil, name: nil) = { shape: shape, dtype: dtype, minval: minval, maxval: maxval, seed: seed, name: name } _op(:random_uniform, nil, nil, ) end |
#random_uniform_initializer(minval: 0, maxval: 1, seed: nil, dtype: nil) ⇒ Object
Initializer that generates tensors with a uniform distribution.
125 126 127 |
# File 'lib/tensor_stream/ops.rb', line 125 def random_uniform_initializer(minval: 0, maxval: 1, seed: nil, dtype: nil) TensorStream::Initializer.new(-> { _op(:random_uniform, nil, nil, minval: 0, maxval: 1, seed: seed, data_type: dtype) }) end |
#rank(input, name: nil) ⇒ Object
Returns the rank of a tensor.
105 106 107 |
# File 'lib/tensor_stream/ops.rb', line 105 def rank(input, name: nil) _op(:rank, input, name: name) end |
#reciprocal(tensor, name: nil) ⇒ Object
Computes the reciprocal of x element-wise.
256 257 258 |
# File 'lib/tensor_stream/ops.rb', line 256 def reciprocal(tensor, name: nil) _op(:reciprocal, tensor, nil, name: name) end |
#reduce_mean(input_tensor, axis = nil, keepdims: false, name: nil) ⇒ Object
Computes the mean of elements across dimensions of a tensor.
204 205 206 |
# File 'lib/tensor_stream/ops.rb', line 204 def reduce_mean(input_tensor, axis = nil, keepdims: false, name: nil) _op(:mean, input_tensor, axis, keepdims: keepdims, name: name) end |
#reduce_prod(input, axis = nil, keepdims: false, name: nil) ⇒ Object
Computes the product of elements across dimensions of a tensor.
Reduces input_tensor along the dimensions given in axis. Unless keepdims is true, the rank of the tensor is reduced by 1 for each entry in axis. If keepdims is true, the reduced dimensions are retained with length 1.
If axis has no entries, all dimensions are reduced, and a tensor with a single element is returned.
223 224 225 |
# File 'lib/tensor_stream/ops.rb', line 223 def reduce_prod(input, axis = nil, keepdims: false, name: nil) _op(:prod, input, axis, keepdims: keepdims, name: name) end |
#reduce_sum(input_tensor, axis = nil, keepdims: false, name: nil) ⇒ Object
Computes the sum of elements across dimensions of a tensor.
Reduces input_tensor along the dimensions given in axis. Unless keepdims is true, the rank of the tensor is reduced by 1 for each entry in axis. If keepdims is true, the reduced dimensions are retained with length 1. If axis has no entries, all dimensions are reduced, and a tensor with a single element is returned.
213 214 215 |
# File 'lib/tensor_stream/ops.rb', line 213 def reduce_sum(input_tensor, axis = nil, keepdims: false, name: nil) _op(:sum, input_tensor, axis, keepdims: keepdims, name: name) end |
#reshape(tensor, shape, name: nil) ⇒ Object
Reshapes a tensor.
Given tensor, this operation returns a tensor that has the same values as tensor with shape shape.
237 238 239 |
# File 'lib/tensor_stream/ops.rb', line 237 def reshape(tensor, shape, name: nil) _op(:reshape, tensor, shape, name: name) end |
#round(tensor, name: nil) ⇒ Object
Rounds the values of a tensor to the nearest integer, element-wise
249 250 251 252 |
# File 'lib/tensor_stream/ops.rb', line 249 def round(tensor, name: nil) check_allowed_types(tensor, FLOATING_POINT_TYPES) _op(:round, tensor, nil, name: name) end |
#shape(input, name: nil, out_type: :int32) ⇒ Object
This operation returns a 1-D integer tensor representing the shape of input
91 92 93 |
# File 'lib/tensor_stream/ops.rb', line 91 def shape(input, name: nil, out_type: :int32) _op(:shape, input, nil, name: name, out_type: out_type) end |
#sigmoid(input, name: nil) ⇒ Object
Computes sigmoid of x element-wise.
481 482 483 484 |
# File 'lib/tensor_stream/ops.rb', line 481 def sigmoid(input, name: nil) check_allowed_types(input, FLOATING_POINT_TYPES) _op(:sigmoid, input, nil, name: name) end |
#sign(input, name: nil) ⇒ Object
Returns an element-wise indication of the sign of a number. y = sign(x) = -1 if x < 0; 0 if x == 0 or tf.is_nan(x); 1 if x > 0. Zero is returned for NaN inputs.
419 420 421 |
# File 'lib/tensor_stream/ops.rb', line 419 def sign(input, name: nil) _op(:sign, input, nil, name: name) end |
#sin(input, name: nil) ⇒ Object
Computes sin of input element-wise.
425 426 427 428 |
# File 'lib/tensor_stream/ops.rb', line 425 def sin(input, name: nil) check_allowed_types(input, FLOATING_POINT_TYPES) _op(:sin, input, nil, name: name) end |
#slice(input, start, size, name: nil) ⇒ Object
Extracts a slice from a tensor.
This operation extracts a slice of size size from a tensor input starting at the location specified by begin. The slice size is represented as a tensor shape, where size is the number of elements of the ‘i’th dimension of input that you want to slice. The starting location (begin) for the slice is represented as an offset in each dimension of input. In other words, begin is the offset into the ‘i’th dimension of input that you want to slice from.
133 134 135 |
# File 'lib/tensor_stream/ops.rb', line 133 def slice(input, start, size, name: nil) _op(:slice, input, start, size: size, name: name) end |
#sqrt(input, name: nil) ⇒ Object
Computes sqrt of input element-wise.
453 454 455 456 |
# File 'lib/tensor_stream/ops.rb', line 453 def sqrt(input, name: nil) check_allowed_types(input, FLOATING_POINT_TYPES) _op(:sqrt, input, nil, name: name) end |
#square(tensor, name: nil) ⇒ Object
Computes square of x element-wise.
243 244 245 |
# File 'lib/tensor_stream/ops.rb', line 243 def square(tensor, name: nil) _op(:square, tensor, nil, name: name) end |
#stop_gradient(tensor, options = {}) ⇒ Object
Stops gradient computation.
When executed in a graph, this op outputs its input tensor as-is.
79 80 81 |
# File 'lib/tensor_stream/ops.rb', line 79 def stop_gradient(tensor, = {}) _op(:stop_gradient, tensor, nil, ) end |
#sub(input_a, input_b, name: nil) ⇒ Object
Returns x - y element-wise.
This operation supports boradcasting
285 286 287 288 |
# File 'lib/tensor_stream/ops.rb', line 285 def sub(input_a, input_b, name: nil) input_a, input_b = check_data_types(input_a, input_b) _op(:sub, input_a, input_b, name: name) end |
#subtract(input_a, input_b, name: nil) ⇒ Object
Returns x - y element-wise.
This operation supports boradcasting
294 295 296 297 |
# File 'lib/tensor_stream/ops.rb', line 294 def subtract(input_a, input_b, name: nil) input_a, input_b = check_data_types(input_a, input_b) sub(input_a, input_b, name: name) end |
#tan(input, name: nil) ⇒ Object
Computes tan of input element-wise.
439 440 441 442 |
# File 'lib/tensor_stream/ops.rb', line 439 def tan(input, name: nil) check_allowed_types(input, FLOATING_POINT_TYPES) _op(:tan, input, nil, name: name) end |
#tanh(input, name: nil) ⇒ Object
Computes tanh of input element-wise.
446 447 448 449 |
# File 'lib/tensor_stream/ops.rb', line 446 def tanh(input, name: nil) check_allowed_types(input, FLOATING_POINT_TYPES) _op(:tanh, input, nil, name: name) end |
#tile(input, multiples, name: nil) ⇒ Object
Constructs a tensor by tiling a given tensor.
This operation creates a new tensor by replicating input multiples times. The output tensor’s i’th dimension has input.dims(i) * multiples elements, and the values of input are replicated multiples times along the ‘i’th dimension. For example, tiling [a b c d] by [2] produces [a b c d a b c d].
99 100 101 |
# File 'lib/tensor_stream/ops.rb', line 99 def tile(input, multiples, name: nil) _op(:tile, input, multiples, name: name) end |
#transpose(tensor, perm: nil, name: 'transpose') ⇒ Object
Transposes a. Permutes the dimensions according to perm.
498 499 500 |
# File 'lib/tensor_stream/ops.rb', line 498 def transpose(tensor, perm: nil, name: 'transpose') _op(:transpose, tensor, nil, perm: perm, name: name) end |
#where(condition, true_t = nil, false_t = nil, name: nil) ⇒ Object
Return the elements, either from x or y, depending on the condition.
268 269 270 |
# File 'lib/tensor_stream/ops.rb', line 268 def where(condition, true_t = nil, false_t = nil, name: nil) _op(:where, true_t, false_t, pred: condition, name: name) end |
#zeros(shape, dtype: :float32, name: nil) ⇒ Object
Creates a tensor with all elements set to zero
139 140 141 |
# File 'lib/tensor_stream/ops.rb', line 139 def zeros(shape, dtype: :float32, name: nil) _op(:zeros, shape, nil, data_type: dtype, name: name) end |
#zeros_initializer(dtype: nil) ⇒ Object
initializer that generates tensors initialized to 0.
111 112 113 |
# File 'lib/tensor_stream/ops.rb', line 111 def zeros_initializer(dtype: nil) TensorStream::Initializer.new(-> { _op(:zeros, nil, nil, data_type: dtype) }) end |
#zeros_like(tensor, dtype: nil, name: nil) ⇒ Object
reates a tensor with all elements set to zero. Given a single tensor (tensor), this operation returns a tensor of the same type and shape as tensor with all elements set to zero. Optionally, you can use dtype to specify a new type for the returned tensor.
361 362 363 |
# File 'lib/tensor_stream/ops.rb', line 361 def zeros_like(tensor, dtype: nil, name: nil) _op(:zeros_like, tensor, nil, data_type: dtype, name: name) end |