tensorflow::Tensor

#include <tensor.h>

Представляет собой n-мерный массив значений.

Краткое содержание

Конструкторы и Деструкторы

Tensor ()
Создает одномерный тензор типа float, состоящий из 0 элементов.
Tensor (DataType type, const TensorShape & shape)
Создает тензор заданного type и shape .
Tensor (Allocator *a, DataType type, const TensorShape & shape)
Создает тензор с заданным type и shape входных данных, используя распределитель памяти a для выделения базового буфера.
Tensor (Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr)
Создает тензор с заданным type и shape входных данных, используя распределитель памяти a и указанный атрибут "allocation_attr" для выделения базового буфера.
Tensor (DataType type, const TensorShape & shape, TensorBuffer *buf)
Создает тензор с заданным типом данных, формой и буфером (buf).
Tensor (DataType type)
Создает пустой тензор заданного типа данных.
Tensor (float scalar_value)
Tensor (double scalar_value)
Tensor (int32 scalar_value)
Tensor (uint32 scalar_value)
Tensor (uint16 scalar_value)
Tensor (uint8 scalar_value)
Tensor (int16 scalar_value)
Tensor (int8 scalar_value)
Tensor (tstring scalar_value)
Tensor (complex64 scalar_value)
Tensor (complex128 scalar_value)
Tensor (int64 scalar_value)
Tensor (uint64 scalar_value)
Tensor (bool scalar_value)
Tensor (qint8 scalar_value)
Tensor (quint8 scalar_value)
Tensor (qint16 scalar_value)
Tensor (quint16 scalar_value)
Tensor (qint32 scalar_value)
Tensor (bfloat16 scalar_value)
Tensor (Eigen::half scalar_value)
Tensor (ResourceHandle scalar_value)
Tensor (const char *scalar_value)
Tensor (const Tensor & other)
Конструктор копирования.
Tensor ( Tensor && other)
Конструктор перемещения.
~Tensor ()

Общественные функции

AllocatedBytes () const
size_t
AsProtoField (TensorProto *proto) const
void
Заполняет proto содержимым *this тензора.
AsProtoTensorContent (TensorProto *proto) const
void
BitcastFrom (const Tensor & other, DataType dtype, const TensorShape & shape)
Status
Скопируйте другой тензор в этот тензор, измените его форму и переинтерпретируйте тип данных буфера.
CopyFrom (const Tensor & other, const TensorShape & shape) TF_MUST_USE_RESULT
bool
Скопируйте другой тензор в этот тензор и измените его форму.
DebugString (int num_values) const
string
Удобочитаемое описание тензора, подходящее для отладки.
DebugString () const
string
DeviceSafeDebugString () const
string
FillDescription (TensorDescription *description) const
void
Заполните протокол TensorDescription метаданными о тензоре, которые полезны для мониторинга и отладки.
FromProto (const TensorProto & other) TF_MUST_USE_RESULT
bool
Проанализируйте other и постройте тензор.
FromProto (Allocator *a, const TensorProto & other) TF_MUST_USE_RESULT
bool
IsAligned () const
bool
Возвращает true только в том случае, если данный тензор выровнен.
IsInitialized () const
bool
При необходимости, инициализирован ли этот тензор ?
IsSameSize (const Tensor & b) const
bool
NumElements () const
int64
Вспомогательный инструмент для доступа к форме тензора.
RefCountIsOne () const
bool
SharesBufferWith (const Tensor & b) const
bool
Slice (int64 dim0_start, int64 dim0_limit) const
Разрежьте этот тензор вдоль первого измерения.
SubSlice (int64 index) const
Выберите подсечку из этого тензора вдоль первого измерения.
SummarizeValue (int64 max_entries, bool print_v2) const
string
Преобразовать первые значения max_entries в *this в строку.
TotalBytes () const
size_t
Возвращает приблизительное значение объема памяти, используемой этим тензором.
UnsafeCopyFromInternal (const Tensor & other, DataType dtype, const TensorShape & shape)
void
Аналогично BitcastFrom, но проверка завершается неудачей, если не выполнены какие-либо предварительные условия.
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes)
TTypes< T, NDIMS >:: Tensor
Верните данные тензора в объект Eigen::Tensor с новой формой, указанной в new_sizes , и преобразуйте его в новый тип данных T
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) const
TTypes< T, NDIMS >::ConstTensor
Верните данные тензора в объект Eigen::Tensor с новой формой, указанной в new_sizes , и преобразуйте его в новый тип данных T
bit_casted_tensor ()
TTypes< T, NDIMS >:: Tensor
Верните данные тензора в объект Eigen::Tensor того же размера, но с побитовым приведением к указанному типу данных T
bit_casted_tensor () const
TTypes< T, NDIMS >::ConstTensor
Верните данные тензора в объект Eigen::Tensor того же размера, но с побитовым приведением к указанному типу данных T
data () const
void *
dim_size (int d) const
int64
Вспомогательный инструмент для доступа к форме тензора.
dims () const
int
Вспомогательный инструмент для доступа к форме тензора.
dtype () const
DataType
Возвращает тип данных.
flat ()
TTypes< T >::Flat
Возвращает тензорные данные в виде объекта Eigen::Tensor указанного типа данных и заданной формы.
flat () const
TTypes< T >::ConstFlat
flat_inner_dims ()
TTypes< T, NDIMS >:: Tensor
Возвращает данные в виде объекта Eigen::Tensor с размерами NDIMS, объединяя все измерения Tensor , кроме последнего NDIMS-1, в первое измерение результата.
flat_inner_dims () const
TTypes< T, NDIMS >::ConstTensor
flat_inner_outer_dims (int64 begin)
TTypes< T, NDIMS >:: Tensor
Возвращает данные в виде Eigen::Tensor с размерами NDIMS, объединяя первые измерения тензора 'begin' в первое измерение результата, а измерения тензора последних измерений dims() - 'begin' - NDIMS — в последнее измерение результата.
flat_inner_outer_dims (int64 begin) const
TTypes< T, NDIMS >::ConstTensor
flat_outer_dims ()
TTypes< T, NDIMS >:: Tensor
Возвращает данные в виде объекта Eigen::Tensor с размерами NDIMS, объединяя все измерения Tensor , кроме первого NDIMS-1, в последнее измерение результата.
flat_outer_dims () const
TTypes< T, NDIMS >::ConstTensor
matrix ()
TTypes< T >::Matrix
matrix () const
TTypes< T >::ConstMatrix
operator= (const Tensor & other)
Оператор присваивания. Этот тензор использует общую память с другими тензорами.
operator= ( Tensor && other)
Оператор перемещения. Подробности см. в конструкторе перемещения.
reinterpret_last_dimension ()
TTypes< T, NDIMS >:: Tensor
Верните данные тензора в объект Eigen::Tensor в котором элементы последнего измерения преобразованы в отдельные элементы большего типа.
reinterpret_last_dimension () const
TTypes< T, NDIMS >::ConstTensor
Верните данные тензора в объект Eigen::Tensor в котором элементы последнего измерения преобразованы в отдельные элементы большего типа.
scalar ()
TTypes< T >::Scalar
Возвращает данные тензора в виде TensorMap фиксированного размера 1: TensorMap > .
scalar () const
TTypes< T >::ConstScalar
shape () const
const TensorShape &
Возвращает форму тензора.
shaped (gtl::ArraySlice< int64 > new_sizes)
TTypes< T, NDIMS >:: Tensor
shaped (gtl::ArraySlice< int64 > new_sizes) const
TTypes< T, NDIMS >::ConstTensor
tensor ()
TTypes< T, NDIMS >:: Tensor
tensor () const
TTypes< T, NDIMS >::ConstTensor
tensor_data () const
StringPiece
Возвращает объект StringPiece , отображающий буфер текущего тензора.
unaligned_flat ()
TTypes< T >::UnalignedFlat
unaligned_flat () const
TTypes< T >::UnalignedConstFlat
unaligned_shaped (gtl::ArraySlice< int64 > new_sizes)
TTypes< T, NDIMS >::UnalignedTensor
unaligned_shaped (gtl::ArraySlice< int64 > new_sizes) const
TTypes< T, NDIMS >::UnalignedConstTensor
vec ()
TTypes< T >::Vec
Возвращает данные тензора в виде объекта Eigen::Tensor содержащего тип и размеры этого Tensor .
vec () const
TTypes< T >::ConstVec
Константные версии всех вышеперечисленных методов.

Общественные функции

AllocatedBytes

size_t AllocatedBytes() const 

AsProtoField

void AsProtoField(
  TensorProto *proto
) const 

Заполняет proto содержимым *this тензора.

AsProtoField() заполняет повторяющееся поле для proto.dtype() , а AsProtoTensorContent() кодирует содержимое proto.tensor_content() в компактной форме.

AsProtoTensorContent

void AsProtoTensorContent(
  TensorProto *proto
) const 

BitcastFrom

Status BitcastFrom(
  const Tensor & other,
  DataType dtype,
  const TensorShape & shape
)

Скопируйте другой тензор в этот тензор, измените его форму и переинтерпретируйте тип данных буфера.

Если возвращается значение Status::OK(), то оба тензора теперь используют одно и то же базовое хранилище.

Для этого вызова требуется, чтобы other тензор и заданный тип и форма были «совместимы» (то есть занимали одинаковое количество байтов).

Конкретно:

shape.num_elements() * DataTypeSize(type)

должно быть равно

other.num_elements() * DataTypeSize(other.dtype())

Кроме того, для работы этой функции требуется:

  • DataTypeSize(other.dtype()) != 0
  • DataTypeSize(type) != 0

Если какое-либо из требований не выполнено, возвращается значение errors::InvalidArgument.

Копировать из

bool CopyFrom(
  const Tensor & other,
  const TensorShape & shape
) TF_MUST_USE_RESULT

Скопируйте другой тензор в этот тензор и измените его форму.

Этот тензор использует то же хранилище, что и другие тензоры. Возвращает true , если other.shape() имеет такое же количество элементов заданной shape .

DebugString

string DebugString(
  int num_values
) const 

Удобочитаемое описание тензора, подходящее для отладки.

DebugString

string DebugString() const 

DeviceSafeDebugString

string DeviceSafeDebugString() const 

FillDescription

void FillDescription(
  TensorDescription *description
) const 

Заполните протокол TensorDescription метаданными о тензоре, которые полезны для мониторинга и отладки.

FromProto

bool FromProto(
  const TensorProto & other
) TF_MUST_USE_RESULT

Проанализируйте other и постройте тензор.

Возвращает true , если разбор проходит успешно. Если разбор не удается, состояние *this остается неизменным.

FromProto

bool FromProto(
  Allocator *a,
  const TensorProto & other
) TF_MUST_USE_RESULT

IsAligned

bool IsAligned() const 

Возвращает true только в том случае, если данный тензор выровнен.

IsInitialized

bool IsInitialized() const 

При необходимости, инициализирован ли этот тензор ?

Тензоры, не содержащие элементов, всегда считаются инициализированными, даже если им никогда не присваивались значения и для них не выделена память.

IsSameSize

bool IsSameSize(
  const Tensor & b
) const 

Числовые элементы

int64 NumElements() const 

Вспомогательный инструмент для доступа к форме тензора.

RefCountIsOne

bool RefCountIsOne() const 

SharesBufferWith

bool SharesBufferWith(
  const Tensor & b
) const 

Ломтик

Tensor Slice(
  int64 dim0_start,
  int64 dim0_limit
) const 

Разрежьте этот тензор вдоль первого измерения.

То есть, возвращаемый тензор удовлетворяет условию returned[i, ...] == this[dim0_start + i, ...]. Возвращаемый тензор использует тот же буфер тензоров, что и этот тензор.

ПРИМЕЧАНИЕ: Возвращаемый тензор может не удовлетворять тем же требованиям выравнивания, что и данный тензор, в зависимости от его формы. Вызывающая сторона должна проверить выравнивание возвращаемого тензора перед вызовом определенных методов, требующих выравнивания (например, flat() , tensor() ).

ПРИМЕЧАНИЕ: При подаче на вход N-мерного тензора этот метод возвращает тензор также с N измерениями. Если вы хотите выбрать подтензор, см. SubSlice.

ТРЕБУЕТСЯ: dims() >= 1 ТРЕБУЕТСЯ: 0 <= dim0_start <= dim0_limit <= dim_size(0)

SubSlice

Tensor SubSlice(
  int64 index
) const 

Выберите подсечку из этого тензора вдоль первого измерения.

При подаче на вход N-мерного тензора этот метод возвращает тензор с N-1 измерениями, где возвращаемый тензор представляет собой подсрез входного тензора вдоль первого измерения. N-1 измерения возвращаемого тензора — это последние N-1 измерения входного тензора.

ПРИМЕЧАНИЕ: Возвращаемый тензор может не удовлетворять тем же требованиям выравнивания, что и данный тензор, в зависимости от его формы. Вызывающая сторона должна проверить выравнивание возвращаемого тензора перед вызовом определенных методов, требующих выравнивания (например, flat() , tensor() ).

ТРЕБУЕТСЯ: dims() >= 1 ТРЕБУЕТСЯ: 0 <= index < dim_size(0)

SummarizeValue

string SummarizeValue(
  int64 max_entries,
  bool print_v2
) const 

Преобразовать первые значения max_entries в *this в строку.

Тензор

 Tensor()

Создает одномерный тензор типа float, состоящий из 0 элементов.

Возвращаемый тензор не является скаляром (форма {}), а представляет собой пустой одномерный тензор (форма {0}, NumElements() == 0). Поскольку он не содержит элементов, ему не нужно присваивать значение, и он инициализируется по умолчанию ( IsInitialized() равно true). Если это нежелательно, рассмотрите возможность создания скаляра с одним элементом, который требует инициализации:

Tensor(DT_FLOAT, TensorShape({}))

      

Tensor

 Tensor(
  DataType type,
  const TensorShape & shape
)

Создает тензор заданного type и shape .

Если LogMemory::IsEnabled(), выделение памяти регистрируется как исходящее из неизвестного ядра и шага. Вызов конструктора Tensor непосредственно из операции устарел: используйте методы allocate_* в OpKernelConstruction/OpKernelContext для выделения нового тензора, которые записывают ядро ​​и шаг.

Базовый буфер выделяется с помощью CPUAllocator .

Тензор

 Tensor(
  Allocator *a,
  DataType type,
  const TensorShape & shape
)

Создает тензор с заданным type и shape входных данных, используя распределитель памяти a для выделения базового буфера.

Если LogMemory::IsEnabled(), выделение памяти регистрируется как исходящее из неизвестного ядра и шага. Вызов конструктора Tensor непосредственно из операции устарел: используйте методы allocate_* в OpKernelConstruction/OpKernelContext для выделения нового тензора, которые записывают ядро ​​и шаг.

a переживёт срок службы этого тензора .

Тензор

 Tensor(
  Allocator *a,
  DataType type,
  const TensorShape & shape,
  const AllocationAttributes & allocation_attr
)

Создает тензор с заданным type и shape входных данных, используя распределитель памяти a и указанный атрибут "allocation_attr" для выделения базового буфера.

Если ядро ​​и шаг известны, параметр allocation_attr.allocation_will_be_logged следует установить в значение true, а метод LogMemory::RecordTensorAllocation следует вызывать после создания тензора. Вызов конструктора Tensor непосредственно из операции устарел: используйте методы allocate_* из OpKernelConstruction/OpKernelContext для выделения нового тензора, в которых записываются ядро ​​и шаг.

a переживёт срок службы этого тензора .

Тензор

 Tensor(
  DataType type,
  const TensorShape & shape,
  TensorBuffer *buf
)

Создает тензор с заданным типом данных, формой и буфером (buf).

Получает ссылку на buf, принадлежащий этому тензору .

Тензор

 Tensor(
  DataType type
)

Создает пустой тензор заданного типа данных.

Подобно Tensor() , возвращает одномерный тензор с 0 элементами, а IsInitialized() возвращает True. Подробности см. в документации к Tensor() .

Тензор

 Tensor(
  float scalar_value
)

Тензор

 Tensor(
  double scalar_value
)

Тензор

 Tensor(
  int32 scalar_value
)

Тензор

 Tensor(
  uint32 scalar_value
)

Тензор

 Tensor(
  uint16 scalar_value
)

Тензор

 Tensor(
  uint8 scalar_value
)

Тензор

 Tensor(
  int16 scalar_value
)

Тензор

 Tensor(
  int8 scalar_value
)

Тензор

 Tensor(
  tstring scalar_value
)

Тензор

 Tensor(
  complex64 scalar_value
)

Тензор

 Tensor(
  complex128 scalar_value
)

Тензор

 Tensor(
  int64 scalar_value
)

Тензор

 Tensor(
  uint64 scalar_value
)

Тензор

 Tensor(
  bool scalar_value
)

Тензор

 Tensor(
  qint8 scalar_value
)

Тензор

 Tensor(
  quint8 scalar_value
)

Тензор

 Tensor(
  qint16 scalar_value
)

Тензор

 Tensor(
  quint16 scalar_value
)

Тензор

 Tensor(
  qint32 scalar_value
)

Тензор

 Tensor(
  bfloat16 scalar_value
)

Тензор

 Tensor(
  Eigen::half scalar_value
)

Тензор

 Tensor(
  ResourceHandle scalar_value
)

Тензор

 Tensor(
  const char *scalar_value
)

Тензор

 Tensor(
  const Tensor & other
)

Конструктор копирования.

Тензор

 Tensor(
  Tensor && other
)

Конструктор перемещения.

После этого звонка, Этот объект можно безопасно уничтожить, и ему можно присвоить значение, но другие вызовы к нему (например, манипулирование формой) недопустимы.

TotalBytes

size_t TotalBytes() const 

Возвращает приблизительное значение объема памяти, используемой этим тензором.

UnsafeCopyFromInternal

void UnsafeCopyFromInternal(
  const Tensor & other,
  DataType dtype,
  const TensorShape & shape
)

Аналогично BitcastFrom, но проверка завершается неудачей, если не выполнены какие-либо предварительные условия.

Устарело. Используйте BitcastFrom вместо него и проверьте возвращаемый статус.

bit_casted_shaped

TTypes< T, NDIMS >::Tensor bit_casted_shaped(
  gtl::ArraySlice< int64 > new_sizes
)

Верните данные тензора в объект Eigen::Tensor с новой формой, указанной в new_sizes , и преобразуйте его в новый тип данных T

Использование битового приведения типов полезно для операций перемещения и копирования. Единственное отличие от shaped() — это допустимое битовое приведение типов.

bit_casted_shaped

TTypes< T, NDIMS >::ConstTensor bit_casted_shaped(
  gtl::ArraySlice< int64 > new_sizes
) const 

Верните данные тензора в объект Eigen::Tensor с новой формой, указанной в new_sizes , и преобразуйте его в новый тип данных T

Использование битового приведения типов полезно для операций перемещения и копирования. Единственное отличие от функции shaped() заключается в допустимом битовом приведении типов.

bit_casted_tensor

TTypes< T, NDIMS >::Tensor bit_casted_tensor()

Верните данные тензора в объект Eigen::Tensor того же размера, но с побитовым приведением к указанному типу данных T

Использование битового приведения типов полезно для операций перемещения и копирования. ПРИМЕЧАНИЕ: это то же самое, что и tensor() за исключением того, что допускается использование битового приведения типов.

bit_casted_tensor

TTypes< T, NDIMS >::ConstTensor bit_casted_tensor() const 

Верните данные тензора в объект Eigen::Tensor того же размера, но с побитовым приведением к указанному типу данных T

Использование битового приведения типов полезно для операций перемещения и копирования. ПРИМЕЧАНИЕ: это то же самое, что и tensor() за исключением того, что допускается использование битового приведения типов.

данные

void * data() const 

dim_size

int64 dim_size(
  int d
) const 

Вспомогательный инструмент для доступа к форме тензора.

тусклые

int dims() const 

Вспомогательный инструмент для доступа к форме тензора.

Для получения информации обо всех методах доступа к форме см. комментарии к соответствующим методам TensorShape в tensor_shape.h .

dtype

DataType dtype() const 

Возвращает тип данных.

плоский

TTypes< T >::Flat flat()

Возвращает тензорные данные в виде объекта Eigen::Tensor указанного типа данных и заданной формы.

Эти методы позволяют получить доступ к данным с заданными вами размерами и размерами. Для их вызова вам не нужно знать количество измерений тензора . Однако они CHECK , что тип соответствует запрошенным размерам, и создают объект Eigen::Tensor с тем же количеством элементов, что и исходный тензор.

Пример:

  
    typedef float T;
    Tensor my_ten(...built with Shape{planes: 4, rows: 3, cols: 5}...);
    // 1D Eigen::Tensor, size 60:
    auto flat = my_ten.flat();
    // 2D Eigen::Tensor 12 x 5:
    auto inner = my_ten.flat_inner_dims();
    // 2D Eigen::Tensor 4 x 15:
    auto outer = my_ten.shaped<T, 2>({4, 15});
    // CHECK fails, bad num elements:
    auto outer = my_ten.shaped<T, 2>({4, 8});
    // 3D Eigen::Tensor 6 x 5 x 2:
    auto weird = my_ten.shaped<T, 3>({6, 5, 2});
    // CHECK fails, type mismatch:
    auto bad   = my_ten.flat();

      

flat

TTypes< T >::ConstFlat flat() const 

flat_inner_dims

TTypes< T, NDIMS >::Tensor flat_inner_dims()

Возвращает данные в виде объекта Eigen::Tensor с размерами NDIMS, объединяя все измерения Tensor , кроме последнего NDIMS-1, в первое измерение результата.

Если NDIMS > dims() , то к выходным данным будут добавлены измерения размером 1, чтобы их ранг соответствовал NDIMS.

flat_inner_dims

TTypes< T, NDIMS >::ConstTensor flat_inner_dims() const 

flat_inner_outer_dims

TTypes< T, NDIMS >::Tensor flat_inner_outer_dims(
  int64 begin
)

Возвращает данные в виде Eigen::Tensor с размерами NDIMS, объединяя первые измерения тензора 'begin' в первое измерение результата, а измерения тензора последних измерений dims() - 'begin' - NDIMS — в последнее измерение результата.

Если 'begin' < 0, то будут добавлены начальные размеры |'begin'| размером 1. Если 'begin' + NDIMS > dims() , то будут добавлены конечные размеры 'begin' + NDIMS - dims() размером 1.

flat_inner_outer_dims

TTypes< T, NDIMS >::ConstTensor flat_inner_outer_dims(
  int64 begin
) const 

flat_outer_dims

TTypes< T, NDIMS >::Tensor flat_outer_dims()

Возвращает данные в виде объекта Eigen::Tensor с размерами NDIMS, объединяя все измерения Tensor , кроме первого NDIMS-1, в последнее измерение результата.

Если NDIMS > dims() , то к выходным данным будут добавлены измерения размером 1, чтобы ранжирование составило NDIMS.

flat_outer_dims

TTypes< T, NDIMS >::ConstTensor flat_outer_dims() const 

матрица

TTypes< T >::Matrix matrix()

матрица

TTypes< T >::ConstMatrix matrix() const 

оператор=

Tensor & operator=(
  const Tensor & other
)

Оператор присваивания. Этот тензор использует общую память с другими тензорами.

оператор=

Tensor & operator=(
  Tensor && other
)

Оператор перемещения. Подробности см. в конструкторе перемещения.

reinterpret_last_dimension

TTypes< T, NDIMS >::Tensor reinterpret_last_dimension()

Верните данные тензора в объект Eigen::Tensor в котором элементы последнего измерения преобразованы в отдельные элементы большего типа.

Например, это полезно для ядер, которые могут обрабатывать тензоры NCHW_VECT_C типа int8 как тензоры NCHW типа int32. Размер(T) должен равняться размеру исходного типа элементов, умноженному на количество элементов в последнем измерении. NDIMS должен быть на 1 меньше исходного количества измерений.

reinterpret_last_dimension

TTypes< T, NDIMS >::ConstTensor reinterpret_last_dimension() const 

Верните данные тензора в объект Eigen::Tensor в котором элементы последнего измерения преобразованы в отдельные элементы большего типа.

Например, это полезно для ядер, которые могут обрабатывать тензоры NCHW_VECT_C типа int8 как тензоры NCHW типа int32. Размер(T) должен равняться размеру исходного типа элементов, умноженному на количество элементов в последнем измерении. NDIMS должен быть на 1 меньше исходного количества измерений.

скаляр

TTypes< T >::Scalar scalar()

Возвращает данные тензора в виде TensorMap фиксированного размера 1: TensorMap > .

Использование scalar() позволяет компилятору выполнять оптимизации, поскольку размер тензора известен во время компиляции.

скаляр

TTypes< T >::ConstScalar scalar() const 

форма

const TensorShape & shape() const 

Возвращает форму тензора.

фигурный

TTypes< T, NDIMS >::Tensor shaped(
  gtl::ArraySlice< int64 > new_sizes
)

фигурный

TTypes< T, NDIMS >::ConstTensor shaped(
  gtl::ArraySlice< int64 > new_sizes
) const 

тензор

TTypes< T, NDIMS >::Tensor tensor()

тензор

TTypes< T, NDIMS >::ConstTensor tensor() const 

tensor_data

StringPiece tensor_data() const 

Возвращает объект StringPiece , отображающий буфер текущего тензора.

Возвращаемое значение StringPiece может указывать на адрес в памяти устройств, к которым процессор не может обратиться напрямую.

ПРИМЕЧАНИЕ: Базовый тензорный буфер использует счетчик ссылок, поэтому время жизни содержимого, отображаемого объектом StringPiece , совпадает со временем жизни буфера; вызывающие функции должны убедиться, что буфер не будет уничтожен, пока объект StringPiece еще используется.

ТРЕБУЕТСЯ: DataTypeCanUseMemcpy(dtype()) .

невыровненный_плоский

TTypes< T >::UnalignedFlat unaligned_flat()

невыровненный_плоский

TTypes< T >::UnalignedConstFlat unaligned_flat() const 

невыровненная_форма

TTypes< T, NDIMS >::UnalignedTensor unaligned_shaped(
  gtl::ArraySlice< int64 > new_sizes
)

невыровненная_форма

TTypes< T, NDIMS >::UnalignedConstTensor unaligned_shaped(
  gtl::ArraySlice< int64 > new_sizes
) const 

век

TTypes< T >::Vec vec()

Возвращает данные тензора в виде объекта Eigen::Tensor, содержащего тип и размеры этого тензора.

Используйте эти методы, если вам известны тип данных и количество измерений тензора, и вы хотите, чтобы размер Eigen::Tensor автоматически соответствовал размерам тензора. Проверка реализации завершится неудачей, если не совпадают тип или размеры.

Пример:

  
    typedef float T;
    Tensor my_mat(...built with Shape{rows: 3, cols: 5}...);
    auto mat = my_mat.matrix();    // 2D Eigen::Tensor, 3 x 5.
    auto mat = my_mat.tensor<T, 2>(); // 2D Eigen::Tensor, 3 x 5.
    auto vec = my_mat.vec();       // CHECK fails as my_mat is 2D.
    auto vec = my_mat.tensor<T, 3>(); // CHECK fails as my_mat is 2D.
    auto mat = my_mat.matrix();// CHECK fails as type mismatch.

      

vec

TTypes< T >::ConstVec vec() const 

Константные версии всех вышеперечисленных методов.

~Тензор

 ~Tensor()