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

#include <tensor.h>

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

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

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

Tensor ()
Создает одномерный 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)
Создает тензор с входным типом данных, формой и буфером.
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, но 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" Tensor в первое измерение результата и измерения Tensor последних 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() в компактной форме.

АсПротоТензорКонтент

void AsProtoTensorContent(
  TensorProto *proto
) const 

БиткастОт

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

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

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

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

Конкретно:

shape.num_elements() * DataTypeSize(тип)

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

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

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

  • DataTypeSize(other.dtype()) != 0
  • DataTypeSize(тип)!= 0

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

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

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

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

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

Отладочная строка

string DebugString(
  int num_values
) const 

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

Отладочная строка

string DebugString() const 

Девицесафедебагстринг

string DeviceSafeDebugString() const 

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

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 

АкцииBufferWith

bool SharesBufferWith(
  const Tensor & b
) const 

Кусочек

Tensor Slice(
  int64 dim0_start,
  int64 dim0_limit
) const 

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

Т.е. возвращенный тензор удовлетворяет условиям 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 

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

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

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

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

Суммировать значение

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
)

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

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

Тензор

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

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

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

Тензор

 Tensor(
  DataType type
)

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

Как и Tensor() , возвращает одномерный 0-элементный Tensor , а 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
)

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

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

Всего байт

size_t TotalBytes() const 

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

UnsafeCopyFromInternal

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 .

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

bit_casted_shape

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

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

Использование битового вещания полезно для операций перемещения и копирования. Разрешенное битовое вещание — единственное отличие от 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 .

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({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" 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 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. Sizeof(T) должен равняться размеру исходного типа элемента * количество элементов в исходном последнем измерении. NDIMS должно быть на 1 меньше исходного числа измерений.

reinterpret_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 

tensor_data

StringPiece tensor_data() const 

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

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

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

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

unaligned_квартира

TTypes< T >::UnalignedFlat unaligned_flat()

unaligned_квартира

TTypes< T >::UnalignedConstFlat unaligned_flat() const 

unaligned_shape

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

unaligned_shape

l10n-placeholder89

век

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

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

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

Пример:

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

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

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

~ Тензор

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