flujo tensor:: Tensor

#include <tensor.h>

Representa una matriz de valores de n dimensiones.

Resumen

Constructores y destructores

Tensor ()
Crea un tensor flotante unidimensional y de 0 elementos.
Tensor (DataType type, const TensorShape & shape)
Crea un tensor del type y shape dados.
Tensor (Allocator *a, DataType type, const TensorShape & shape)
Crea un tensor con el type y shape de entrada, utilizando el asignador a para asignar el búfer subyacente.
Tensor (Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr)
Crea un tensor con el type y shape de entrada, utilizando el asignador a y el "allocation_attr" especificado para asignar el búfer subyacente.
Tensor (DataType type, const TensorShape & shape, TensorBuffer *buf)
Crea un tensor con el tipo de datos de entrada, forma y buf.
Tensor (DataType type)
Crea un tensor vacío del tipo de datos dado.
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)
Copiar constructor.
Tensor ( Tensor && other)
Mover constructor.
Tensor (T *t)
~Tensor ()

Funciones públicas

AllocatedBytes () const
size_t
AsProtoField (TensorProto *proto) const
void
Rellena proto con *this tensor.
AsProtoTensorContent (TensorProto *proto) const
void
BitcastFrom (const Tensor & other, DataType dtype, const TensorShape & shape)
Status
Copie el otro tensor en este tensor, remodele y reinterprete el tipo de datos del búfer.
CopyFrom (const Tensor & other, const TensorShape & shape) TF_MUST_USE_RESULT
bool
Copie el otro tensor en este tensor y vuelva a darle forma.
DebugString (int num_values) const
std::string
Un resumen legible por humanos del tensor adecuado para la depuración.
DebugString () const
std::string
DeviceSafeDebugString () const
std::string
FillDescription (TensorDescription *description) const
void
Complete el protocolo TensorDescription con metadatos sobre el tensor que sea útil para monitorear y depurar.
FromProto (const TensorProto & other) TF_MUST_USE_RESULT
bool
Analiza other y construye el tensor.
FromProto (Allocator *a, const TensorProto & other) TF_MUST_USE_RESULT
bool
IsAligned () const
bool
Devuelve verdadero si este tensor está alineado.
IsInitialized () const
bool
Si es necesario, ¿se ha inicializado este tensor ?
IsSameSize (const Tensor & b) const
bool
NumElements () const
int64
Accesorio conveniente para la forma del tensor.
RefCountIsOne () const
bool
SharesBufferWith (const Tensor & b) const
bool
Slice (int64 dim0_start, int64 dim0_limit) const
Corta este tensor a lo largo de la primera dimensión.
SubSlice (int64 index) const
Seleccione una subsección de este tensor a lo largo de la primera dimensión.
SummarizeValue (int64 max_entries, bool print_v2) const
std::string
Representa los primeros valores max_entries en *this en una cadena.
TotalBytes () const
size_t
Devuelve el uso de memoria estimado de este tensor.
UnsafeCopyFromInternal (const Tensor & other, DataType dtype, const TensorShape & shape)
void
Como BitcastFrom, pero CHECK falla si no se cumple alguna condición previa.
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes)
TTypes< T, NDIMS >:: Tensor
Devuelve los datos del tensor a un Eigen::Tensor con la nueva forma especificada en new_sizes y conviértelo a un nuevo dtype T .
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) const
TTypes< T, NDIMS >::ConstTensor
Devuelve los datos del tensor a un Eigen::Tensor con la nueva forma especificada en new_sizes y conviértelo a un nuevo dtype T .
bit_casted_tensor ()
TTypes< T, NDIMS >:: Tensor
Devuelve los datos del tensor a un Eigen::Tensor con el mismo tamaño pero con una conversión bit a bit al dtype T especificado.
bit_casted_tensor () const
TTypes< T, NDIMS >::ConstTensor
Devuelve los datos del tensor a un Eigen::Tensor con el mismo tamaño pero con una conversión bit a bit al tipo d especificado T .
data () const
void *
dim_size (int d) const
int64
Accesorio conveniente para la forma del tensor.
dims () const
int
Accesorio conveniente para la forma del tensor.
dtype () const
DataType
Devuelve el tipo de datos.
flat ()
TTypes< T >::Flat
Devuelve los datos del tensor como un Eigen::Tensor del tipo de datos y una forma especificada.
flat () const
TTypes< T >::ConstFlat
flat_inner_dims ()
TTypes< T, NDIMS >:: Tensor
Devuelve los datos como un Eigen::Tensor con dimensiones NDIMS, colapsando todas las dimensiones del tensor excepto el último NDIMS-1 en la primera dimensión del resultado.
flat_inner_dims () const
TTypes< T, NDIMS >::ConstTensor
flat_inner_outer_dims (int64 begin)
TTypes< T, NDIMS >:: Tensor
Devuelve los datos como un Eigen::Tensor con dimensiones NDIMS, colapsando las primeras dimensiones del tensor 'inicio' en la primera dimensión del resultado y las dimensiones del tensor de las últimas dimensiones() - 'comienzo' - NDIMS en la última dimensión del resultado.
flat_inner_outer_dims (int64 begin) const
TTypes< T, NDIMS >::ConstTensor
flat_outer_dims ()
TTypes< T, NDIMS >:: Tensor
Devuelve los datos como un Eigen::Tensor con dimensiones NDIMS, colapsando todas las dimensiones del tensor excepto el primer NDIMS-1 en la última dimensión del resultado.
flat_outer_dims () const
TTypes< T, NDIMS >::ConstTensor
matrix ()
TTypes< T >::Matrix
matrix () const
TTypes< T >::ConstMatrix
operator= (const Tensor & other)
Asignar operador. Este tensor comparte el almacenamiento subyacente de otros.
operator= ( Tensor && other)
Mover operador. Consulte constructor de movimientos para obtener más detalles.
reinterpret_last_dimension ()
TTypes< T, NDIMS >:: Tensor
Devuelve los datos del tensor a un Eigen::Tensor con los últimos elementos de dimensión convertidos en elementos individuales de un tipo más grande.
reinterpret_last_dimension () const
TTypes< T, NDIMS >::ConstTensor
Devuelve los datos del tensor a un Eigen::Tensor con los últimos elementos de dimensión convertidos en elementos individuales de un tipo más grande.
scalar ()
TTypes< T >::Scalar
Devuelve los datos de Tensor como un TensorMap de tamaño fijo 1: TensorMap > TensorMap > .
scalar () const
TTypes< T >::ConstScalar
shape () const
const TensorShape &
Devuelve la forma del tensor.
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
Devuelve un StringPiece que asigna el búfer del tensor actual.
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
Devuelve los datos del tensor como un Eigen::Tensor con el tipo y tamaños de este Tensor .
vec () const
TTypes< T >::ConstVec
Versiones constantes de todos los métodos anteriores.

Funciones públicas

Bytes asignados

size_t AllocatedBytes() const 

ComoProtoField

void AsProtoField(
  TensorProto *proto
) const 

Rellena proto con *this tensor.

AsProtoField() completa el campo repetido para proto.dtype() , mientras que AsProtoTensorContent() codifica el contenido en proto.tensor_content() en una forma compacta.

ComoProtoTensorContenido

void AsProtoTensorContent(
  TensorProto *proto
) const 

BitcastDesde

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

Copie el otro tensor en este tensor, remodele y reinterprete el tipo de datos del búfer.

Si se devuelve Status::OK(), los dos tensores ahora comparten el mismo almacenamiento subyacente.

Esta llamada requiere que el other tensor y el tipo y forma dados sean "compatibles" (es decir, ocupen el mismo número de bytes).

Específicamente:

shape.num_elements() * TamañoTipoDatos(tipo)

debe ser igual

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

Además, esta función requiere:

  • TamañoTipoDatos(otro.tipod()) != 0
  • TamañoTipoDatos(tipo) != 0

Si no se cumple alguno de los requisitos, se devuelve errores::InvalidArgument.

Copiar desde

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

Copie el otro tensor en este tensor y vuelva a darle forma.

Este tensor comparte el almacenamiento subyacente de otros. Devuelve true si other.shape() tiene el mismo número de elementos de la shape dada.

Cadena de depuración

std::string DebugString(
  int num_values
) const 

Un resumen legible por humanos del tensor adecuado para la depuración.

Cadena de depuración

std::string DebugString() const 

DispositivoSafeDebugString

std::string DeviceSafeDebugString() const 

RellenarDescripción

void FillDescription(
  TensorDescription *description
) const 

Complete el protocolo TensorDescription con metadatos sobre el tensor que sea útil para monitorear y depurar.

DeProto

bool FromProto(
  const TensorProto & other
) TF_MUST_USE_RESULT

Analiza other y construye el tensor.

Devuelve true si el análisis se realiza correctamente. Si el análisis falla, el estado de *this no cambia.

DeProto

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

Está alineado

bool IsAligned() const 

Devuelve verdadero si este tensor está alineado.

Está inicializado

bool IsInitialized() const 

Si es necesario, ¿se ha inicializado este tensor ?

Los tensores de elemento cero siempre se consideran inicializados, incluso si nunca han sido asignados y no tienen memoria asignada.

Es el mismo tamaño

bool IsSameSize(
  const Tensor & b
) const 

Número de elementos

int64 NumElements() const 

Accesorio conveniente para la forma del tensor.

RefCountIsOne

bool RefCountIsOne() const 

SharesBufferCon

bool SharesBufferWith(
  const Tensor & b
) const 

Rebanada

Tensor Slice(
  int64 dim0_start,
  int64 dim0_limit
) const 

Corta este tensor a lo largo de la primera dimensión.

Es decir, el tensor devuelto satisface devuelto[i,...] == this[dim0_start + i,...]. El tensor devuelto comparte el búfer tensor subyacente con este tensor.

NOTA: Es posible que el tensor devuelto no satisfaga el mismo requisito de alineación que este tensor según la forma. La persona que llama debe verificar la alineación del tensor devuelto antes de llamar a ciertos métodos que tienen requisitos de alineación (por ejemplo, flat() , tensor() ).

NOTA: Cuando se alimenta con un tensor de N dimensiones, este método devuelve un tensor también con N dimensiones. Si desea seleccionar un subtensor, consulte SubSlice.

REQUIERE: dims() >= 1 REQUIERE: 0 <= dim0_start <= dim0_limit <= dim_size(0)

Subporción

Tensor SubSlice(
  int64 index
) const 

Seleccione una subsección de este tensor a lo largo de la primera dimensión.

Cuando se alimenta con un tensor de N dimensiones, este método devuelve un tensor con N-1 dimensiones, donde el tensor devuelto es una subsección del tensor de entrada a lo largo de la primera dimensión. Las N-1 dimensiones del tensor devuelto son las últimas N-1 dimensiones del tensor de entrada.

NOTA: Es posible que el tensor devuelto no satisfaga el mismo requisito de alineación que este tensor según la forma. La persona que llama debe verificar la alineación del tensor devuelto antes de llamar a ciertos métodos que tienen requisitos de alineación (por ejemplo, flat() , tensor() ).

REQUIERE: dims() >= 1 REQUIERE: 0 <= index < dim_size(0)

ResumirValor

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

Represente los primeros valores max_entries en *this en una cadena.

Tensor

 Tensor()

Crea un tensor flotante unidimensional y de 0 elementos.

El tensor devuelto no es un escalar (forma {}), sino un tensor unidimensional vacío (forma {0}, NumElements() == 0). Como no tiene elementos, no es necesario asignarle un valor y se inicializa de forma predeterminada ( IsInitialized() es verdadero). Si esto no es deseable, considere crear un escalar de un elemento que requiera inicialización:

Tensor(DT_FLOAT, TensorShape({}))

      

Tensor

 Tensor(
  DataType type,
  const TensorShape & shape
)

Crea un tensor del type y shape dados.

Si LogMemory::IsEnabled() la asignación se registra como proveniente de un kernel y paso desconocidos. Llamar al constructor de tensor directamente desde una operación está en desuso: utilice los métodos allocate_* OpKernelConstruction/OpKernelContext para asignar un nuevo tensor, que registra el núcleo y el paso.

El búfer subyacente se asigna mediante CPUAllocator .

Tensor

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

Crea un tensor con el type y shape de entrada, utilizando el asignador a para asignar el búfer subyacente.

Si LogMemory::IsEnabled() la asignación se registra como proveniente de un kernel y paso desconocidos. Llamar al constructor de tensor directamente desde una operación está en desuso: utilice los métodos allocate_* OpKernelConstruction/OpKernelContext para asignar un nuevo tensor, que registra el núcleo y el paso.

a sobrevivir a la vida útil de este Tensor .

Tensor

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

Crea un tensor con el type y shape de entrada, utilizando el asignador a y el "allocation_attr" especificado para asignar el búfer subyacente.

Si se conocen el kernel y el paso, asignación_attr.allocation_will_be_logged debe establecerse en verdadero y se debe llamar a LogMemory::RecordTensorAllocation después de construir el tensor. Llamar al constructor de tensor directamente desde una operación está en desuso: utilice los métodos allocate_* OpKernelConstruction/OpKernelContext para asignar un nuevo tensor, que registra el núcleo y el paso.

a sobrevivir a la vida útil de este Tensor .

Tensor

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

Crea un tensor con el tipo de datos de entrada, forma y buf.

Adquiere una referencia buf que pertenece a este Tensor .

Tensor

 Tensor(
  DataType type
)

Crea un tensor vacío del tipo de datos dado.

Al igual que Tensor() , devuelve un tensor unidimensional de 0 elementos y IsInitialized() devuelve True. Consulte la documentación de Tensor() para obtener más detalles.

Tensor

 Tensor(
  float scalar_value
)

Tensor

 Tensor(
  double scalar_value
)

Tensor

 Tensor(
  int32 scalar_value
)

Tensor

 Tensor(
  uint32 scalar_value
)

Tensor

 Tensor(
  uint16 scalar_value
)

Tensor

 Tensor(
  uint8 scalar_value
)

Tensor

 Tensor(
  int16 scalar_value
)

Tensor

 Tensor(
  int8 scalar_value
)

Tensor

 Tensor(
  tstring scalar_value
)

Tensor

 Tensor(
  complex64 scalar_value
)

Tensor

 Tensor(
  complex128 scalar_value
)

Tensor

 Tensor(
  int64 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
)

Copiar constructor.

Tensor

 Tensor(
  Tensor && other
)

Mover constructor.

Después de esta llamada, es destructible de forma segura y se le puede asignar, pero otras llamadas (por ejemplo, manipulación de formas) no son válidas.

Tensor

 Tensor(
  T *t
)=delete

Total de bytes

size_t TotalBytes() const 

Devuelve el uso de memoria estimado de este tensor.

Copia insegura desde interna

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

Como BitcastFrom, pero CHECK falla si no se cumple alguna condición previa.

En desuso. Utilice BitcastFrom en su lugar y verifique el estado devuelto.

bit_casted_shape

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

Devuelve los datos del tensor a un Eigen::Tensor con la nueva forma especificada en new_sizes y conviértelo a un nuevo dtype T .

Usar un bitcast es útil para operaciones de mover y copiar. El bitcast permitido es la única diferencia con shaped() .

bit_casted_shape

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

Devuelve los datos del tensor a un Eigen::Tensor con la nueva forma especificada en new_sizes y conviértelo a un nuevo dtype T .

Usar un bitcast es útil para operaciones de mover y copiar. El bitcast permitido es la única diferencia con shaped() .

bit_casted_tensor

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

Devuelve los datos del tensor a un Eigen::Tensor con el mismo tamaño pero con una conversión bit a bit al tipo d especificado T .

Usar un bitcast es útil para operaciones de mover y copiar. NOTA: esto es lo mismo que tensor() excepto que se permite un bitcast.

bit_casted_tensor

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

Devuelve los datos del tensor a un Eigen::Tensor con el mismo tamaño pero con una conversión bit a bit al tipo d especificado T .

Usar un bitcast es útil para operaciones de mover y copiar. NOTA: esto es lo mismo que tensor() excepto que se permite un bitcast.

datos

void * data() const 

tamaño_tenue

int64 dim_size(
  int d
) const 

Accesorio conveniente para la forma del tensor.

se atenúa

int dims() const 

Accesorio conveniente para la forma del tensor.

Para todos los descriptores de acceso a formas, consulte los comentarios sobre los métodos relevantes de TensorShape en tensor_shape.h .

tipo d

DataType dtype() const 

Devuelve el tipo de datos.

departamento

TTypes< T >::Flat flat()

Devuelve los datos del tensor como un Eigen::Tensor del tipo de datos y una forma especificada.

Estos métodos le permiten acceder a los datos con las dimensiones y tamaños de su elección. No es necesario saber el número de dimensiones del tensor para llamarlos. Sin embargo, CHECK que el tipo coincida y las dimensiones solicitadas crean un Eigen::Tensor con el mismo número de elementos que el tensor.

Ejemplo:

  
    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 

dimensiones_interiores_planas

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

Devuelve los datos como un Eigen::Tensor con dimensiones NDIMS, colapsando todas las dimensiones del tensor excepto el último NDIMS-1 en la primera dimensión del resultado.

Si NDIMS > dims() entonces se agregarán dimensiones iniciales de tamaño 1 para que la salida se clasifique como NDIMS.

dimensiones_interiores_planas

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

dimensiones_interiores_planas_exteriores

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

Devuelve los datos como un Eigen::Tensor con dimensiones NDIMS, colapsando las primeras dimensiones del tensor 'inicio' en la primera dimensión del resultado y las dimensiones del tensor de las últimas dimensiones() - 'comienzo' - NDIMS en la última dimensión del resultado.

Si 'comienzo' < 0 entonces el |'comienzo'| Se agregarán las dimensiones iniciales de tamaño 1. Si 'begin' + NDIMS > dims() entonces 'begin' + NDIMS - dims() se agregarán dimensiones finales de tamaño 1.

dimensiones_exteriores_interiores_planas

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

dimensiones_exteriores_planas

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

Devuelve los datos como un Eigen::Tensor con dimensiones NDIMS, colapsando todas las dimensiones del tensor excepto el primer NDIMS-1 en la última dimensión del resultado.

Si NDIMS > dims() entonces se agregarán dimensiones finales de tamaño 1 para que la salida se clasifique como NDIMS.

dimensiones_exteriores_planas

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

matriz

TTypes< T >::Matrix matrix()

matriz

TTypes< T >::ConstMatrix matrix() const 

operador=

Tensor & operator=(
  const Tensor & other
)

Asignar operador. Este tensor comparte el almacenamiento subyacente de otros.

operador=

Tensor & operator=(
  Tensor && other
)

Mover operador. Consulte constructor de movimientos para obtener más detalles.

reinterpretar_última_dimensión

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

Devuelve los datos del tensor a un Eigen::Tensor con los últimos elementos de dimensión convertidos en elementos individuales de un tipo más grande.

Por ejemplo, esto es útil para núcleos que pueden tratar los tensores NCHW_VECT_C int8 como tensores NCHW int32. El tamaño de (T) debe ser igual al tamaño del tipo de elemento original * número de elementos en la última dimensión original. NDIMS debe ser 1 menos que el número original de dimensiones.

reinterpretar_última_dimensión

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

Devuelve los datos del tensor a un Eigen::Tensor con los últimos elementos de dimensión convertidos en elementos individuales de un tipo más grande.

Por ejemplo, esto es útil para núcleos que pueden tratar los tensores NCHW_VECT_C int8 como tensores NCHW int32. El tamaño de (T) debe ser igual al tamaño del tipo de elemento original * número de elementos en la última dimensión original. NDIMS debe ser 1 menos que el número original de dimensiones.

escalar

TTypes< T >::Scalar scalar()

Devuelve los datos de Tensor como un TensorMap de tamaño fijo 1: TensorMap > TensorMap > .

El uso de scalar() permite al compilador realizar optimizaciones ya que el tamaño del tensor se conoce en el momento de la compilación.

escalar

TTypes< T >::ConstScalar scalar() const 

forma

const TensorShape & shape() const 

Devuelve la forma del tensor.

conformado

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

conformado

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

tensor

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

tensor

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

datos_tensor

StringPiece tensor_data() const 

Devuelve un StringPiece que asigna el búfer del tensor actual.

El StringPiece devuelto puede apuntar a la ubicación de la memoria en dispositivos que la CPU no puede abordar directamente.

NOTA: El búfer tensorial subyacente se vuelve a contar, por lo que la vida útil de los contenidos asignados por StringPieza coincide con la vida útil del búfer; Las personas que llaman deben hacer arreglos para asegurarse de que el búfer no se destruya mientras StringPiece todavía se usa.

REQUIERE: DataTypeCanUseMemcpy(dtype()) .

no alineado_plano

TTypes< T >::UnalignedFlat unaligned_flat()

no alineado_plano

TTypes< T >::UnalignedConstFlat unaligned_flat() const 

forma_no alineada

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

forma_no alineada

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

vec

TTypes< T >::Vec vec()

Devuelve los datos del tensor como un Eigen::Tensor con el tipo y tamaños de este Tensor.

Utilice estos métodos cuando conozca el tipo de datos y el número de dimensiones del tensor y desee un Eigen::Tensor dimensionado automáticamente según los tamaños del tensor. La verificación de implementación falla si el tipo o el tamaño no coinciden.

Ejemplo:

  
    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(); // 2D Eigen::Tensor, 3 x 5.
    auto vec = my_mat.vec();       // CHECK fails as my_mat is 2D.
    auto vec = my_mat.tensor(); // CHECK fails as my_mat is 2D.
    auto mat = my_mat.matrix();// CHECK fails as type mismatch.

      

vec

TTypes< T >::ConstVec vec() const 

Versiones constantes de todos los métodos anteriores.

~Tensor

 ~Tensor()