Spec-Zone.ru › TensorFlow C++

tensorflow::Tensor

#include <tensor.h>

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

Краткое описание

Конструкторы и деструкторы
Tensor()
Создает одномерный тензор с плавающей точкой и 0 элементами.
Tensor(DataType type, const TensorShape & shape)
Создает Tensor с заданными 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, TensorShape shape, core::RefCountPtr< TensorBuffer > buf)
Создает тензор с входными типом данных, формой и buf.
Tensor(DataType type)
Создает пустой Tensor заданного типа данных.
Tensor(float scalar_value)
Tensor(double scalar_value)
Tensor(int32_t scalar_value)
Tensor(uint32 scalar_value)
Tensor(uint16 scalar_value)
Tensor(uint8 scalar_value)
Tensor(int16_t scalar_value)
Tensor(int8_t scalar_value)
Tensor(tstring scalar_value)
Tensor(complex64 scalar_value)
Tensor(complex128 scalar_value)
Tensor(int64_t 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(T *t)
~Tensor()
Дружественные классы
operator<<
friend std::ostream &
Открытые функции
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
std::string
Удобочитаемое описание тензора для отладки.
DebugString() const
std::string
DeviceSafeDebugString() const
std::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
GetMemoryType() const
AllocatorMemoryType
IsAligned() const
bool
Возвращает true тогда и только тогда, когда этот тензор выровнен.
IsInitialized() const
bool
Инициализирован ли этот Tensor, если это необходимо?
IsSameSize(const Tensor & b) const
bool
NumElements() const
int64_t
Удобный метод доступа к форме тензора.
RefCount() const
int
RefCountIsOne() const
bool
SharesBufferWith(const Tensor & b) const
bool
Slice(int64_t dim0_start, int64_t dim0_limit) const
Tensor
Извлекает срез этого тензора вдоль первого измерения.
SubSlice(int64_t index) const
Tensor
Выбирает подсрез этого тензора вдоль первого измерения.
SummarizeValue(int64_t max_entries, bool print_v2) const
std::string
Преобразует первые max_entries значений в *this в строку.
TotalBytes() const
size_t
Возвращает оценку использования памяти этим тензором.
UnsafeCopyFromInternal(const Tensor & other, DataType dtype, const TensorShape & shape)
void
Аналог BitcastFrom, но CHECK завершается ошибкой, если не выполнено какое-либо предварительное условие.
bit_casted_shaped(gtl::ArraySlice< int64_t > new_sizes)
TTypes< T, NDIMS >::Tensor
Возвращает данные тензора в Eigen::Tensor с новой формой, указанной в new_sizes, и преобразованным к новому типу данных T.
bit_casted_shaped(gtl::ArraySlice< int64_t > 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_t
Удобный метод доступа к форме тензора.
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_t begin)
TTypes< T, NDIMS >::Tensor
Возвращает данные в виде Eigen::Tensor с NDIMS измерениями, объединяя первые «begin» измерений Tensor в первое измерение результата, а измерения Tensor с последнего dims() - «begin» - NDIMS — в последнее измерение результата.
flat_inner_outer_dims(int64_t 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)
Tensor &
Оператор присваивания. Этот тензор использует то же базовое хранилище, что и другой.
operator=(Tensor && other)
Tensor &
Оператор перемещения. Подробности см. в описании конструктора перемещения.
reinterpret_last_dimension()
TTypes< T, NDIMS >::Tensor
Возвращает данные тензора в Eigen::Tensor, преобразуя элементы последнего измерения в отдельные элементы большего типа.
reinterpret_last_dimension() const
TTypes< T, NDIMS >::ConstTensor
Возвращает данные тензора в Eigen::Tensor, преобразуя элементы последнего измерения в отдельные элементы большего типа.
scalar()
TTypes< T >::Scalar
Возвращает данные Tensor как TensorMap фиксированного размера 1: TensorMap>.
scalar() const
TTypes< T >::ConstScalar
shape() const
const TensorShape &
Возвращает форму тензора.
shaped(gtl::ArraySlice< int64_t > new_sizes)
TTypes< T, NDIMS >::Tensor
shaped(gtl::ArraySlice< int64_t > new_sizes) const
TTypes< T, NDIMS >::ConstTensor
tensor() TF_ATTRIBUTE_NOINLINE
TTypes< T, NDIMS >::Tensor
tensor() const TF_ATTRIBUTE_NOINLINE
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_t > new_sizes)
TTypes< T, NDIMS >::UnalignedTensor
unaligned_shaped(gtl::ArraySlice< int64_t > new_sizes) const
TTypes< T, NDIMS >::UnalignedConstTensor
vec()
TTypes< T >::Vec
Возвращает данные тензора как Eigen::Tensor с типом и размерами этого Tensor.
vec() const
TTypes< T >::ConstVec
Константные версии всех перечисленных выше методов.
Открытые статические функции
BuildTensor(DataType type, const TensorShape & shape, Tensor *out_tensor)
Status
Инициализирует тензор с входными type и shape либо возвращает ошибку, оставляя out_tensor без изменений.

Дружественные классы

operator<<

friend std::ostream & operator<<(std::ostream &out, const Tensor &tensor)

Открытые функции

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
)

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

Если возвращен статус ok, теперь оба тензора используют одно и то же базовое хранилище.

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

В частности:

shape.num_elements() * DataTypeSize(type)

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

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

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

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

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

CopyFrom

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

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

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

DebugString

std::string DebugString(
  int num_values
) const 

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

DebugString

std::string DebugString() const 

DeviceSafeDebugString

std::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

GetMemoryType

AllocatorMemoryType GetMemoryType() const 

IsAligned

bool IsAligned() const 

Возвращает true тогда и только тогда, когда этот тензор выровнен.

IsInitialized

bool IsInitialized() const 

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

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

IsSameSize

bool IsSameSize(
  const Tensor & b
) const 

NumElements

int64_t NumElements() const 

Удобный метод доступа к форме тензора.

RefCount

int RefCount() const 

RefCountIsOne

bool RefCountIsOne() const 

SharesBufferWith

bool SharesBufferWith(
  const Tensor & b
) const 

Slice

Tensor Slice(
  int64_t dim0_start,
  int64_t 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_t index
) const 

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

Для N-мерного тензора этот метод возвращает тензор с N-1 измерениями, представляющий собой подсрез входного тензора вдоль первого измерения. N-1 измерений возвращаемого тензора соответствуют последним N-1 измерениям входного тензора.

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

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

SummarizeValue

std::string SummarizeValue(
  int64_t max_entries,
  bool print_v2
) const 

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

Tensor

Tensor()

Создает одномерный тензор с плавающей точкой и 0 элементами.

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

Tensor(DT_FLOAT, TensorShape({}))

Tensor

 Tensor(
  DataType type,
  const TensorShape & shape
)

Создает Tensor с заданными type и shape.

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

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

Tensor

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

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

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

a должен существовать дольше этого Tensor.

Tensor

 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 из Op считается устаревшим: используйте методы allocate_* класса OpKernelConstruction/OpKernelContext для выделения нового тензора, чтобы записать ядро и шаг.

a должен существовать дольше этого Tensor.

Tensor

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

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

Увеличивает счетчик ссылок buf, который принадлежит этому Tensor.

Tensor

 Tensor(
  DataType type,
  TensorShape shape,
  core::RefCountPtr< TensorBuffer > buf
)

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

Принимает владение буфером у указателя со счетчиком ссылок.

Tensor

 Tensor(
  DataType type
)

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

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

Tensor

 Tensor(
  float scalar_value
)

Tensor

 Tensor(
  double scalar_value
)

Tensor

 Tensor(
  int32_t scalar_value
)

Tensor

 Tensor(
  uint32 scalar_value
)

Tensor

 Tensor(
  uint16 scalar_value
)

Tensor

 Tensor(
  uint8 scalar_value
)

Tensor

 Tensor(
  int16_t scalar_value
)

Tensor

 Tensor(
  int8_t scalar_value
)

Tensor

 Tensor(
  tstring scalar_value
)

Tensor

 Tensor(
  complex64 scalar_value
)

Tensor

 Tensor(
  complex128 scalar_value
)

Tensor

 Tensor(
  int64_t scalar_value
)

Tensor

 Tensor(
  uint64 scalar_value
)

Tensor

 Tensor(
  bool scalar_value
)

Tensor

 Tensor(
  qint8 scalar_value
)

Tensor

 Tensor(
  quint8 scalar_value
)

Tensor

 Tensor(
  qint16 scalar_value
)

Tensor

 Tensor(
  quint16 scalar_value
)

Tensor

 Tensor(
  qint32 scalar_value
)

Tensor

 Tensor(
  bfloat16 scalar_value
)

Tensor

 Tensor(
  Eigen::half scalar_value
)

Tensor

 Tensor(
  ResourceHandle scalar_value
)

Tensor

 Tensor(
  const char *scalar_value
)

Tensor

 Tensor(
  const Tensor & other
)

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

Tensor

 Tensor(
  Tensor && other
)

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

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

Tensor

 Tensor(
  T *t
)=delete

TotalBytes

size_t TotalBytes() const 

Возвращает оценку использования памяти этим тензором.

UnsafeCopyFromInternal

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

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

Устарел. Используйте BitcastFrom и проверяйте возвращённый объект Status.

bit_casted_shaped

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

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

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

bit_casted_shaped

TTypes< T, NDIMS >::ConstTensor bit_casted_shaped(
  gtl::ArraySlice< int64_t > 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(), за исключением того, что допускается побитовое преобразование.

data

void * data() const 

dim_size

int64_t dim_size(
  int d
) const 

Удобный метод доступа к форме тензора.

dims

int dims() const 

Удобный метод доступа к форме тензора.

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

dtype

DataType dtype() const 

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

flat

TTypes< T >::Flat flat()

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

Эти методы позволяют обращаться к данным с выбранными вами размерами и их количеством. Для их вызова не нужно знать количество измерений объекта 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, 2="">({4, 15});
// CHECK fails, bad num elements:
auto outer = my_ten.shaped, 2="">({4, 8});
// 3D Eigen::Tensor 6 x 5 x 2:
auto weird = my_ten.shaped, 3="">({6, 5, 2});
// CHECK fails, type mismatch:
auto bad   = my_ten.flat();</t,></t,></t,>

flat

TTypes< T >::ConstFlat flat() const 

flat_inner_dims

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

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

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

flat_inner_dims

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

flat_inner_outer_dims

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

Возвращает данные в виде Eigen::Tensor с NDIMS измерениями, объединяя первые 'begin' измерений Tensor в первое измерение результата, а измерения Tensor с последнего 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_t begin
) const 

flat_outer_dims

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

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

Если NDIMS > dims(), для достижения ранга NDIMS результата будут добавлены завершающие измерения размера 1.

flat_outer_dims

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

matrix

TTypes< T >::Matrix matrix()

matrix

TTypes< T >::ConstMatrix matrix() const 

operator=

Tensor & operator=(
  const Tensor & other
)

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

operator=

Tensor & operator=(
  Tensor && other
)

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

reinterpret_last_dimension

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

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

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

reinterpret_last_dimension

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

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

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

scalar

TTypes< T >::Scalar scalar()

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

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

scalar

TTypes< T >::ConstScalar scalar() const 

shape

const TensorShape & shape() const 

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

shaped

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

shaped

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

tensor

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

tensor

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

tensor_data

StringPiece tensor_data() const 

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

Возвращаемый объект StringPiece может указывать на область памяти на устройствах, к которым ЦП не может обращаться напрямую.

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

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

unaligned_flat

TTypes< T >::UnalignedFlat unaligned_flat()

unaligned_flat

TTypes< T >::UnalignedConstFlat unaligned_flat() const 

unaligned_shaped

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

unaligned_shaped

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

vec

TTypes< T >::Vec vec()

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

Используйте эти методы, если вам известны тип данных и количество измерений объекта Tensor и требуется Eigen::Tensor с размерами, автоматически соответствующими размерам 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, 2="">(); // 2D Eigen::Tensor, 3 x 5.
auto vec = my_mat.vec();       // CHECK fails as my_mat is 2D.
auto vec = my_mat.tensor, 3="">(); // CHECK fails as my_mat is 2D.
auto mat = my_mat.matrix();// CHECK fails as type mismatch.</t,></t,>

vec

TTypes< T >::ConstVec vec() const 

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

~Tensor

~Tensor()

Общедоступные статические функции

BuildTensor

Status BuildTensor(
  DataType type,
  const TensorShape & shape,
  Tensor *out_tensor
)

Инициализирует тензор входными данными type и shape либо возвращает ошибку, оставляя out_tensor без изменений.

Этот фабричный метод следует использовать вместо соответствующего конструктора, если вызывающий код не может проверить, является ли DataType допустимым и поддерживаемым.

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

© 2022 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/api_docs/cc/class/tensorflow/tensor

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API