tensorflow::Tensor
#include <tensor.h>
Представляет n-мерный массив значений.
Краткое описание
| Конструкторы и деструкторы | |
|---|---|
Tensor() Создает одномерный тензор с плавающей точкой и 0 элементами. | |
Tensor(DataType type, const TensorShape & 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 | Извлекает срез этого тензора вдоль первого измерения. |
SubSlice(int64_t index) const | Выбирает подсрез этого тензора вдоль первого измерения. |
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 |
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 |
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 )
Конструктор перемещения.
После этого вызова объект
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()
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()
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()
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