Skip to content

Latest commit

 

History

History
306 lines (159 loc) · 7.65 KB

File metadata and controls

306 lines (159 loc) · 7.65 KB

TensorArray Operations

Note: Functions taking Tensor arguments can also take anything accepted by tf.convert_to_tensor.

[TOC]

TensorArray operations.

Classes containing dynamically sized arrays of Tensors.


class tf.TensorArray {#TensorArray}

Class wrapping dynamic-sized, per-time-step, write-once Tensor arrays.

This class is meant to be used with dynamic iteration primitives such as while_loop and map_fn. It supports gradient back-propagation via special "flow" control flow dependencies.


tf.TensorArray.handle {#TensorArray.handle}

The reference to the TensorArray.


tf.TensorArray.flow {#TensorArray.flow}

The flow Tensor forcing ops leading to this TensorArray state.


tf.TensorArray.dtype {#TensorArray.dtype}

The data type of this TensorArray.


tf.TensorArray.read(index, name=None) {#TensorArray.read}

Read the value at location index in the TensorArray.

Args:
  • index: 0-D. int32 tensor with the index to read from.
  • name: A name for the operation (optional).
Returns:

The tensor at index index.


tf.TensorArray.gather(indices, name=None) {#TensorArray.gather}

Return selected values in the TensorArray as a packed Tensor.

All of selected values must have been written and their shapes must all match.

Args:
  • indices: A 1-D Tensor taking values in [0, max_value). If the TensorArray is not dynamic, max_value=size().
  • name: A name for the operation (optional).
Returns:

The in the TensorArray selected by indices, packed into one tensor.


tf.TensorArray.stack(name=None) {#TensorArray.stack}

Return the values in the TensorArray as a stacked Tensor.

All of the values must have been written and their shapes must all match. If input shapes have rank-R, then output shape will have rank-(R+1).

Args:
  • name: A name for the operation (optional).
Returns:

All the tensors in the TensorArray stacked into one tensor.


tf.TensorArray.concat(name=None) {#TensorArray.concat}

Return the values in the TensorArray as a concatenated Tensor.

All of the values must have been written, their ranks must match, and and their shapes must all match for all dimensions except the first.

Args:
  • name: A name for the operation (optional).
Returns:

All the tensors in the TensorArray concatenated into one tensor.


tf.TensorArray.write(index, value, name=None) {#TensorArray.write}

Write value into index index of the TensorArray.

Args:
  • index: 0-D. int32 scalar with the index to write to.
  • value: N-D. Tensor of type dtype. The Tensor to write to this index.
  • name: A name for the operation (optional).
Returns:

A new TensorArray object with flow that ensures the write occurs. Use this object all for subsequent operations.

Raises:
  • ValueError: if there are more writers than specified.

tf.TensorArray.scatter(indices, value, name=None) {#TensorArray.scatter}

Scatter the values of a Tensor in specific indices of a TensorArray.

Args:
  • indices: A 1-D Tensor taking values in [0, max_value). If the TensorArray is not dynamic, max_value=size().
  • value: (N+1)-D. Tensor of type dtype. The Tensor to unpack.
  • name: A name for the operation (optional).
Returns:

A new TensorArray object with flow that ensures the scatter occurs. Use this object all for subsequent operations.

Raises:
  • ValueError: if the shape inference fails.

tf.TensorArray.unstack(value, name=None) {#TensorArray.unstack}

Unstack the values of a Tensor in the TensorArray.

If input value shapes have rank-R, then the output TensorArray will contain elements whose shapes are rank-(R-1).

Args:
  • value: (N+1)-D. Tensor of type dtype. The Tensor to unstack.
  • name: A name for the operation (optional).
Returns:

A new TensorArray object with flow that ensures the unstack occurs. Use this object all for subsequent operations.

Raises:
  • ValueError: if the shape inference fails.

tf.TensorArray.split(value, lengths, name=None) {#TensorArray.split}

Split the values of a Tensor into the TensorArray.

Args:
  • value: (N+1)-D. Tensor of type dtype. The Tensor to split.
  • lengths: 1-D. int32 vector with the lengths to use when splitting value along its first dimension.
  • name: A name for the operation (optional).
Returns:

A new TensorArray object with flow that ensures the split occurs. Use this object all for subsequent operations.

Raises:
  • ValueError: if the shape inference fails.

tf.TensorArray.identity() {#TensorArray.identity}

Returns a TensorArray with the same content and properties.

Returns:

A new TensorArray object with flow that ensures the control dependencies from the contexts will become control dependencies for writes, reads, etc. Use this object all for subsequent operations.


tf.TensorArray.grad(source, flow=None, name=None) {#TensorArray.grad}

Other Methods


tf.TensorArray.__init__(dtype, size=None, dynamic_size=None, clear_after_read=None, tensor_array_name=None, handle=None, flow=None, infer_shape=True, element_shape=None, name=None) {#TensorArray.init}

Construct a new TensorArray or wrap an existing TensorArray handle.

A note about the parameter name:

The name of the TensorArray (even if passed in) is uniquified: each time a new TensorArray is created at runtime it is assigned its own name for the duration of the run. This avoids name collisions if a TensorArray is created within a while_loop.

Args:
  • dtype: (required) data type of the TensorArray.
  • size: (optional) int32 scalar Tensor: the size of the TensorArray. Required if handle is not provided.
  • dynamic_size: (optional) Python bool: If true, writes to the TensorArray can grow the TensorArray past its initial size. Default: False.
  • clear_after_read: Boolean (optional, default: True). If True, clear TensorArray values after reading them. This disables read-many semantics, but allows early release of memory.
  • tensor_array_name: (optional) Python string: the name of the TensorArray. This is used when creating the TensorArray handle. If this value is set, handle should be None.
  • handle: (optional) A Tensor handle to an existing TensorArray. If this is set, tensor_array_name should be None.
  • flow: (optional) A float Tensor scalar coming from an existing TensorArray.flow.
  • infer_shape: (optional, default: True) If True, shape inference is enabled. In this case, all elements must have the same shape.
  • element_shape: (optional, default: None) A TensorShape object specifying the shape constraints of each of the elements of the TensorArray. Need not be fully defined.
  • name: A name for the operation (optional).
Raises:
  • ValueError: if both handle and tensor_array_name are provided.
  • TypeError: if handle is provided but is not a Tensor.

tf.TensorArray.close(name=None) {#TensorArray.close}

Close the current TensorArray.


tf.TensorArray.size(name=None) {#TensorArray.size}

Return the size of the TensorArray.