tensorflow:: Tensor

#include <tensor.h>

Representa una matriz n-dimensional de valores.

Resumen

Constructores y destructores

Tensor ()
Crea un tensor flotante unidimensional de 0 elementos.
Tensor (DataType type, const TensorShape & shape)
Crea un tensor del type y la 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 atributo "allocation_attr" especificado para asignar el búfer subyacente.
Tensor (DataType type, const TensorShape & shape, TensorBuffer *buf)
Crea un tensor con el tipo de dato, la forma y el búfer de entrada.
Tensor (DataType type)
Crea un tensor vacío del tipo de datos especificado.
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)
Constructor de copia.
Tensor ( Tensor && other)
Constructor de movimiento.
~Tensor ()

Funciones públicas

AllocatedBytes () const
size_t
AsProtoField (TensorProto *proto) const
void
Rellena proto con el contenido de *this tensor.
AsProtoTensorContent (TensorProto *proto) const
void
BitcastFrom (const Tensor & other, DataType dtype, const TensorShape & shape)
Copia el otro tensor en este tensor, redimensiónalo y reinterpreta el tipo de datos del búfer.
CopyFrom (const Tensor & other, const TensorShape & shape) TF_MUST_USE_RESULT
bool
Copia el otro tensor en este tensor y redimensiónalo.
DebugString (int num_values) const
string
Un resumen del tensor legible para humanos, adecuado para la depuración.
DebugString () const
string
DeviceSafeDebugString () const
string
FillDescription (TensorDescription *description) const
void
Rellene el proto TensorDescription con metadatos sobre el tensor que sean útiles para la monitorización y la depuración.
FromProto (const TensorProto & other) TF_MUST_USE_RESULT
bool
Analizar other y construir el tensor.
FromProto (Allocator *a, const TensorProto & other) TF_MUST_USE_RESULT
bool
IsAligned () const
bool
Devuelve verdadero si y solo 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 práctico para la forma tensorial.
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
string
Convierte los primeros valores max_entries en *this en una cadena.
TotalBytes () const
size_t
Devuelve el uso estimado de memoria de este tensor.
UnsafeCopyFromInternal (const Tensor & other, DataType dtype, const TensorShape & shape)
void
Similar a BitcastFrom, pero CHECK falla si no se cumplen algunas condiciones previas.
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 del mismo tamaño pero con una conversión bit a bit al tipo de datos T especificado.
bit_casted_tensor () const
TTypes< T, NDIMS >::ConstTensor
Devuelve los datos del tensor a un Eigen::Tensor del mismo tamaño pero con una conversión bit a bit al tipo de datos T especificado.
dim_size (int d) const
int64
Accesorio práctico para la forma tensorial.
dims () const
int
Accesorio práctico para la forma tensorial.
dtype () const
DataType
Devuelve el tipo de dato.
flat ()
TTypes< T >::Flat
Devuelve los datos del tensor como un Eigen::Tensor del tipo de datos y con 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 la última 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 'begin' en la primera dimensión del resultado y las dimensiones del Tensor de las últimas dims() - 'begin' - 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 la primera 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)
Operador de asignación. Este tensor comparte el almacenamiento subyacente de otros.
operator= ( Tensor && other)
Operador de movimiento. Consulte el constructor de movimiento para obtener más detalles.
reinterpret_last_dimension ()
TTypes< T, NDIMS >:: Tensor
Devuelve los datos del tensor a un Eigen::Tensor con los elementos de la última dimensión convertidos en elementos individuales de un tipo mayor.
reinterpret_last_dimension () const
TTypes< T, NDIMS >::ConstTensor
Devuelve los datos del tensor a un Eigen::Tensor con los elementos de la última dimensión convertidos en elementos individuales de un tipo mayor.
scalar ()
TTypes< T >::Scalar
Devuelve los datos del Tensor como un TensorMap de tamaño fijo 1: 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 mapea 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 los 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 el contenido de *this tensor.

AsProtoField() rellena el campo repetido para proto.dtype() , mientras que AsProtoTensorContent() codifica el contenido en proto.tensor_content() en un formato compacto.

ComoProtoTensorContent

void AsProtoTensorContent(
  TensorProto *proto
) const 

Bitcast desde

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

Copia el otro tensor en este tensor, redimensiónalo y reinterpreta 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, que ocupen el mismo número de bytes).

Específicamente:

forma.num_elements() * DataTypeSize(type)

debe ser igual

otro.num_elements() * DataTypeSize(otro.dtype())

Además, esta función requiere:

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

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

Copiar de

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

Copia el otro tensor en este tensor y redimensiónalo.

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

Cadena de depuración

string DebugString(
  int num_values
) const 

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

Cadena de depuración

string DebugString() const 

Cadena de depuración segura del dispositivo

string DeviceSafeDebugString() const 

Descripción de relleno

void FillDescription(
  TensorDescription *description
) const 

Rellene el proto TensorDescription con metadatos sobre el tensor que sean útiles para la monitorización y la depuración.

DeProto

bool FromProto(
  const TensorProto & other
) TF_MUST_USE_RESULT

Analizar other y construir el tensor.

Devuelve true si y solo si el análisis sintáctico se realiza correctamente. Si el análisis sintáctico falla, el estado de *this permanece sin cambios.

DeProto

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

EstáAlineado

bool IsAligned() const 

Devuelve verdadero si y solo si este tensor está alineado.

Está inicializado

bool IsInitialized() const 

Si es necesario, ¿se ha inicializado este tensor ?

Los tensores con cero elementos siempre se consideran inicializados, incluso si nunca se les ha asignado memoria ni se les ha asignado ninguna.

Es del mismo tamaño

bool IsSameSize(
  const Tensor & b
) const 

NumElementos

int64 NumElements() const 

Accesorio práctico para la forma tensorial.

SharesBufferWith

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 returned[i, ...] == this[dim0_start + i, ...]. El tensor devuelto comparte el búfer de tensores subyacente con este tensor.

NOTA: El tensor devuelto puede no cumplir con el mismo requisito de alineación que este tensor, dependiendo de su forma. Quien realiza la llamada 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: Al introducir un tensor N-dimensional, este método devuelve un tensor también N-dimensional. Si desea seleccionar un subtensor, consulte SubSlice.

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

Subcorte

Tensor SubSlice(
  int64 index
) const 

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

Al recibir un tensor N-dimensional, este método devuelve un tensor de 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: El tensor devuelto puede no cumplir con el mismo requisito de alineación que este tensor, dependiendo de su forma. Quien realiza la llamada 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 <= dim0_start < dim_size(0)

Resumir valor

string SummarizeValue(
  int64 max_entries,
  bool print_v2
) const 

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

Tensor

 Tensor()

Crea un tensor flotante unidimensional 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 necesita que se le asigne un valor y se inicializa por defecto ( IsInitialized() es verdadero). Si esto no es deseable, considere crear un escalar de un solo elemento que sí requiera inicialización:

Tensor(DT_FLOAT, TensorShape({}))

      

Tensor

 Tensor(
  DataType type,
  const TensorShape & shape
)

Crea un tensor del type y la 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 dentro de un Op está obsoleto: utilice los métodos allocate_* de OpKernelConstruction/OpKernelContext para asignar un nuevo tensor, que registran el kernel y el paso.

El búfer subyacente se asigna mediante un 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 dentro de un Op está obsoleto: utilice los métodos allocate_* de OpKernelConstruction/OpKernelContext para asignar un nuevo tensor, que registran el kernel 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 atributo "allocation_attr" especificado para asignar el búfer subyacente.

Si se conocen el kernel y el paso, se debe establecer allocation_attr.allocation_will_be_logged en true y llamar a LogMemory::RecordTensorAllocation después de que se construya el tensor. Llamar al constructor de Tensor directamente desde dentro de un Op está obsoleto: utilice los métodos allocate_* de OpKernelConstruction/OpKernelContext para asignar un nuevo tensor, que registran el kernel 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 dato, la forma y el búfer de entrada.

Adquiere una referencia en buf que pertenece a este Tensor .

Tensor

 Tensor(
  DataType type
)

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

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
)

Constructor de copia.

Tensor

 Tensor(
  Tensor && other
)

Constructor de movimiento.

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

TotalBytes

size_t TotalBytes() const 

Devuelve el uso estimado de memoria de este tensor.

Copia insegura desde el interior

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

Similar a BitcastFrom, pero CHECK falla si no se cumplen algunas condiciones previas.

Obsoleto. Utilice BitcastFrom en su lugar y compruebe el estado devuelto.

forma de bit_cast

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

El uso de una conversión de bits es útil para operaciones de mover y copiar. La única diferencia con shaped() es la conversión de bits permitida.

forma de bit_cast

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

El uso de una conversión de bits es útil para operaciones de mover y copiar. La única diferencia con shaped() es la conversión de bits permitida.

tensor_convertido_a_bits

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

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

El uso de una conversión de bits es útil para operaciones de mover y copiar. NOTA: esto es lo mismo que tensor() excepto que se permite una conversión de bits.

tensor_convertido_a_bits

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

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

El uso de una conversión de bits es útil para operaciones de mover y copiar. NOTA: esto es lo mismo que tensor() excepto que se permite una conversión de bits.

tamaño_dimensionado

int64 dim_size(
  int d
) const 

Accesorio práctico para la forma tensorial.

atenuaciones

int dims() const 

Accesorio práctico para la forma tensorial.

Para todos los accesores de forma, consulte los comentarios de los métodos relevantes de TensorShape en tensor_shape.h .

tipo de datos

DataType dtype() const 

Devuelve el tipo de dato.

departamento

TTypes< T >::Flat flat()

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

Estos métodos permiten acceder a los datos con las dimensiones y tamaños que se deseen. No es necesario conocer el número de dimensiones del tensor para utilizarlos. Sin embargo, CHECK que el tipo coincida y que las dimensiones solicitadas creen 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<T, 2>({4, 15});
    // CHECK fails, bad num elements:
    auto outer = my_ten.shaped<T, 2>({4, 8});
    // 3D Eigen::Tensor 6 x 5 x 2:
    auto weird = my_ten.shaped<T, 3>({6, 5, 2});
    // CHECK fails, type mismatch:
    auto bad   = my_ten.flat();

      

flat

TTypes< T >::ConstFlat flat() const 

dimensiones internas 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 la última NDIMS-1 en la primera dimensión del resultado.

Si NDIMS > dims() entonces se agregarán dimensiones principales de tamaño 1 para que la salida tenga un rango de NDIMS.

dimensiones internas planas

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

dimensiones_interiores_exteriores_planas

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 'begin' en la primera dimensión del resultado y las dimensiones del Tensor de las últimas dims() - 'begin' - NDIMS en la última dimensión del resultado.

Si 'begin' < 0, se añadirán las dimensiones iniciales de tamaño 1 ('begin'|). Si 'begin' + NDIMS > dims() , se añadirán las dimensiones finales de tamaño 1 ('begin' + NDIMS - dims()) .

dimensiones_interiores_exteriores_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 la primera NDIMS-1 en la última dimensión del resultado.

Si NDIMS > dims() , se agregarán dimensiones finales de tamaño 1 para que la salida tenga un rango de 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
)

Operador de asignación. Este tensor comparte el almacenamiento subyacente de otros.

operador=

Tensor & operator=(
  Tensor && other
)

Operador de movimiento. Consulte el constructor de movimiento 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 elementos de la última dimensión convertidos en elementos individuales de un tipo mayor.

Por ejemplo, esto es útil para kernels que pueden tratar tensores NCHW_VECT_C int8 como tensores NCHW int32. El valor de sizeof(T) debe ser igual al tamaño del tipo de elemento original multiplicado por el 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 elementos de la última dimensión convertidos en elementos individuales de un tipo mayor.

Por ejemplo, esto es útil para kernels que pueden tratar tensores NCHW_VECT_C int8 como tensores NCHW int32. El valor de sizeof(T) debe ser igual al tamaño del tipo de elemento original multiplicado por el 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 del Tensor como un TensorMap de tamaño fijo 1: TensorMap > .

El uso scalar() permite al compilador realizar optimizaciones, ya que el tamaño del tensor se conoce en tiempo de 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_tensores

StringPiece tensor_data() const 

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

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

NOTA: El búfer tensorial subyacente utiliza un contador de referencias, por lo que la vida útil del contenido mapeado por StringPiece coincide con la vida útil del búfer; quienes realicen las llamadas deben asegurarse de que el búfer no se destruya mientras StringPiece siga en uso.

REQUIERE: DataTypeCanUseMemcpy(dtype()) .

plano no alineado

TTypes< T >::UnalignedFlat unaligned_flat()

plano no alineado

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 

vector

TTypes< T >::Vec vec()

Devuelve los datos del tensor como un Eigen::Tensor con el tipo y los 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 que un Eigen::Tensor se ajuste automáticamente al tamaño del Tensor. La comprobación de la 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<T, 2>(); // 2D Eigen::Tensor, 3 x 5.
    auto vec = my_mat.vec();       // CHECK fails as my_mat is 2D.
    auto vec = my_mat.tensor<T, 3>(); // 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()