#include <string_ops.h>
Return substrings from Tensor
of strings.
For each string in the input Tensor
, creates a substring starting at index pos
with a total length of len
.
If len
defines a substring that would extend beyond the length of the input string, or if len
is negative, then as many characters as possible are used.
A negative pos
indicates distance within the string backwards from the end.
If pos
specifies an index which is out of range for any of the input strings, then an InvalidArgumentError
is thrown.
pos
and len
must have the same shape, otherwise a ValueError
is thrown on Op creation.
NOTE: Substr
supports broadcasting up to two dimensions. More about broadcasting here
Examples
Using scalar pos
and len
:
input = [b'Hello', b'World'] position = 1 length = 3
output = [b'ell', b'orl']
Using pos
and len
with same shape as input
:
input = [[b'ten', b'eleven', b'twelve'], [b'thirteen', b'fourteen', b'fifteen'], [b'sixteen', b'seventeen', b'eighteen']] position = [[1, 2, 3], [1, 2, 3], [1, 2, 3]] length = [[2, 3, 4], [4, 3, 2], [5, 5, 5]]
output = [[b'en', b'eve', b'lve'], [b'hirt', b'urt', b'te'], [b'ixtee', b'vente', b'hteen']]
Broadcasting pos
and len
onto input
:
input = [[b'ten', b'eleven', b'twelve'], [b'thirteen', b'fourteen', b'fifteen'], [b'sixteen', b'seventeen', b'eighteen'], [b'nineteen', b'twenty', b'twentyone']] position = [1, 2, 3] length = [1, 2, 3]
output = [[b'e', b'ev', b'lve'], [b'h', b'ur', b'tee'], [b'i', b've', b'hte'], [b'i', b'en', b'nty']]
Broadcasting input
onto pos
and len
:
input = b'thirteen' position = [1, 5, 7] length = [3, 2, 1]
output = [b'hir', b'ee', b'n']
Raises:
ValueError
: If the first argument cannot be converted to a Tensor of dtype string
.InvalidArgumentError
: If indices are out of range.ValueError
: If pos
and len
are not the same shape.Arguments:
Optional attributes (see Attrs
):
"BYTE"
(for defining position and length by bytes) or "UTF8_CHAR"
(for the UTF-8 encoded Unicode code points). The default is "BYTE"
. Results are undefined if unit=UTF8_CHAR
and the input
strings do not contain structurally valid UTF-8.Returns:
Constructors and Destructors | |
---|---|
Substr(const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input pos, ::tensorflow::Input len) | |
Substr(const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input pos, ::tensorflow::Input len, const Substr::Attrs & attrs) |
Public attributes | |
---|---|
operation | |
output |
Public functions | |
---|---|
node() const | ::tensorflow::Node * |
operator::tensorflow::Input() const | |
operator::tensorflow::Output() const |
Public static functions | |
---|---|
Unit(StringPiece x) |
Structs | |
---|---|
tensorflow::ops::Substr::Attrs | Optional attribute setters for Substr. |
Operation operation
::tensorflow::Output output
Substr( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input pos, ::tensorflow::Input len )
Substr( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input pos, ::tensorflow::Input len, const Substr::Attrs & attrs )
::tensorflow::Node * node() const
operator::tensorflow::Input() const
operator::tensorflow::Output() const
Attrs Unit( StringPiece x )
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/cc/class/tensorflow/ops/substr