тензорный поток:: Тензор

#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)
Создает тензор с входным типом данных, формой и буфером.
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 (T *t)
~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
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
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
Разрежьте этот тензор по 1-му измерению.
SubSlice (int64 index) const
Выберите подсрез из этого тензора по 1-му измерению.
SummarizeValue (int64 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 > new_sizes)
TTypes< T, NDIMS >:: Tensor
Верните данные тензора в Eigen::Tensor с новой формой, указанной в new_sizes и приведите к новому dtype T .
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) const
TTypes< T, NDIMS >::ConstTensor
Верните данные тензора в Eigen::Tensor с новой формой, указанной в new_sizes и приведите к новому dtype T .
bit_casted_tensor ()
TTypes< T, NDIMS >:: Tensor
Возвратите данные тензора в Eigen::Tensor с тем же размером, но с побитовым приведением к указанному dtype T .
bit_casted_tensor () const
TTypes< T, NDIMS >::ConstTensor
Возвратите данные тензора в Eigen::Tensor с тем же размером, но с побитовым приведением к указанному dtype 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
Верните данные Tensor в виде TensorMap фиксированного размера 1: TensorMap > 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
Константные версии всех вышеперечисленных методов.

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

Аллокатедбайт

size_t AllocatedBytes() const 

Аспротофилд

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(тип)

должен равняться

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

Кроме того, эта функция требует:

  • Размер ТипаДанных(другой.dtype()) != 0
  • DataTypeSize(тип) != 0

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

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

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 

ЗаполнитьОписание

void FillDescription(
  TensorDescription *description
) const 

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

ОтПрото

bool FromProto(
  const TensorProto & other
) TF_MUST_USE_RESULT

Разберите other и постройте тензор.

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

ОтПрото

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

IsAligned

bool IsAligned() const 

Возвращает true, если этот тензор выровнен.

Инициализирован

bool IsInitialized() const 

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

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

Иссамесайз

bool IsSameSize(
  const Tensor & b
) const 

числоэлементов

int64 NumElements() const 

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

RefCountIsOne

bool RefCountIsOne() const 

АкцииБуферС

bool SharesBufferWith(
  const Tensor & b
) const 

Ломтик

Tensor Slice(
  int64 dim0_start,
  int64 dim0_limit
) const 

Разрежьте этот тензор по 1-му измерению.

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

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

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

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

Подсрез

Tensor SubSlice(
  int64 index
) const 

Выберите подсрез из этого тензора по 1-му измерению.

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

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

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

Суммарное значение

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

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

Тензор

 Tensor()

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

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

Tensor(DT_FLOAT, TensorShape({}))

      

Tensor

 Tensor(
  DataType type,
  const TensorShape & shape
)

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

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

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

Тензор

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

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

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

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

Тензор

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

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

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

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

Тензор

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

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

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

Тензор

 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
)

Переместить конструктор.

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

Тензор

 Tensor(
  T *t
)=delete

Всего байт

size_t TotalBytes() const 

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

Унсафекопифроминтернал

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

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

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

bit_casted_shape

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

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

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

bit_casted_shape

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

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

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

bit_casted_tensor

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

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

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

bit_casted_tensor

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

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

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

данные

void * data() const 

dim_size

int64 dim_size(
  int d
) const 

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

тускнеет

int dims() const 

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

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

тип

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({4, 15});
    // CHECK fails, bad num elements:
    auto outer = my_ten.shaped({4, 8});
    // 3D Eigen::Tensor 6 x 5 x 2:
    auto weird = my_ten.shaped({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
)

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

переинтерпретировать_last_dimension

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

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

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

переинтерпретировать_last_dimension

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

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

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

скаляр

TTypes< T >::Scalar scalar()

Верните данные Tensor в виде TensorMap фиксированного размера 1: TensorMap > 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 

тензорные_данные

StringPiece tensor_data() const 

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

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

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

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

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

TTypes< T >::UnalignedFlat unaligned_flat()

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

TTypes< T >::UnalignedConstFlat unaligned_flat() const 

невыровненный_образный

l10n-заполнитель89

невыровненный_образный

l10n-заполнитель90

век

l10n-заполнитель91

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

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

Пример:

l10n-заполнитель92

l10n-заполнитель93

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

~ Тензор

l10n-заполнитель94