tensoreflusso:: Tensore

#include <tensor.h>

Rappresenta una matrice di valori n-dimensionale.

Riepilogo

Costruttori e distruttori

Tensor ()
Crea un tensore float unidimensionale a 0 elementi.
Tensor (DataType type, const TensorShape & shape)
Crea un tensore del type e shape specificati.
Tensor (Allocator *a, DataType type, const TensorShape & shape)
Crea un tensore con type e shape di input, utilizzando l'allocatore a per allocare il buffer sottostante.
Tensor (Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr)
Crea un tensore con type e shape di input, utilizzando l'allocatore a e l'"allocation_attr" specificato per allocare il buffer sottostante.
Tensor (DataType type, const TensorShape & shape, TensorBuffer *buf)
Crea un tensore con il tipo di dati di input, forma e buf.
Tensor (DataType type)
Crea un tensore vuoto del tipo di dati specificato.
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)
Copia costruttore.
Tensor ( Tensor && other)
Sposta costruttore.
Tensor (T *t)
~Tensor ()

Funzioni pubbliche

AllocatedBytes () const
size_t
AsProtoField (TensorProto *proto) const
void
Compila proto con *this tensore.
AsProtoTensorContent (TensorProto *proto) const
void
BitcastFrom (const Tensor & other, DataType dtype, const TensorShape & shape)
Status
Copia l'altro tensore in questo tensore, rimodellalo e reinterpreta il tipo di dati del buffer.
CopyFrom (const Tensor & other, const TensorShape & shape) TF_MUST_USE_RESULT
bool
Copia l'altro tensore in questo tensore e rimodellalo.
DebugString (int num_values) const
std::string
Un riepilogo leggibile dall'uomo del tensore adatto per il debug.
DebugString () const
std::string
DeviceSafeDebugString () const
std::string
FillDescription (TensorDescription *description) const
void
Compila il protocollo TensorDescription con i metadati sul tensore utili per il monitoraggio e il debug.
FromProto (const TensorProto & other) TF_MUST_USE_RESULT
bool
Analizzare other e costruire il tensore.
FromProto (Allocator *a, const TensorProto & other) TF_MUST_USE_RESULT
bool
IsAligned () const
bool
Restituisce vero se e solo se questo tensore è allineato.
IsInitialized () const
bool
Se necessario, questo tensore è stato inizializzato?
IsSameSize (const Tensor & b) const
bool
NumElements () const
int64
Accessorio conveniente per la forma del tensore.
RefCountIsOne () const
bool
SharesBufferWith (const Tensor & b) const
bool
Slice (int64 dim0_start, int64 dim0_limit) const
Taglia questo tensore lungo la prima dimensione.
SubSlice (int64 index) const
Seleziona una sottosezione da questo tensore lungo la prima dimensione.
SummarizeValue (int64 max_entries, bool print_v2) const
std::string
Rendere i primi valori max_entries in *this in una stringa.
TotalBytes () const
size_t
Restituisce l'utilizzo stimato della memoria di questo tensore.
UnsafeCopyFromInternal (const Tensor & other, DataType dtype, const TensorShape & shape)
void
Come BitcastFrom, ma CHECK fallisce se qualche precondizione non viene soddisfatta.
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes)
TTypes< T, NDIMS >:: Tensor
Restituisci i dati del tensore a un Eigen::Tensor con la nuova forma specificata in new_sizes e convertili in un nuovo dtype T .
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) const
TTypes< T, NDIMS >::ConstTensor
Restituisci i dati del tensore a un Eigen::Tensor con la nuova forma specificata in new_sizes e convertili in un nuovo dtype T .
bit_casted_tensor ()
TTypes< T, NDIMS >:: Tensor
Restituisce i dati del tensore a un Eigen::Tensor con la stessa dimensione ma un cast bit a bit al dtype T specificato.
bit_casted_tensor () const
TTypes< T, NDIMS >::ConstTensor
Restituisce i dati del tensore a un Eigen::Tensor con la stessa dimensione ma un cast bit a bit al dtype T specificato.
data () const
void *
dim_size (int d) const
int64
Accessorio conveniente per la forma del tensore.
dims () const
int
Accessorio conveniente per la forma del tensore.
dtype () const
DataType
Restituisce il tipo di dati.
flat ()
TTypes< T >::Flat
Restituisce i dati del tensore come Eigen::Tensor del tipo di dati e di una forma specificata.
flat () const
TTypes< T >::ConstFlat
flat_inner_dims ()
TTypes< T, NDIMS >:: Tensor
Restituisce i dati come Eigen::Tensor con dimensioni NDIMS, comprimendo tutte le dimensioni del tensore tranne l'ultimo NDIMS-1 nella prima dimensione del risultato.
flat_inner_dims () const
TTypes< T, NDIMS >::ConstTensor
flat_inner_outer_dims (int64 begin)
TTypes< T, NDIMS >:: Tensor
Restituisce i dati come Eigen::Tensor con dimensioni NDIMS, comprimendo le prime dimensioni del tensore 'begin' nella prima dimensione del risultato e le dimensioni del tensore dell'ultimo dims() - 'begin' - NDIMS nell'ultima dimensione del risultato.
flat_inner_outer_dims (int64 begin) const
TTypes< T, NDIMS >::ConstTensor
flat_outer_dims ()
TTypes< T, NDIMS >:: Tensor
Restituisce i dati come Eigen::Tensor con dimensioni NDIMS, comprimendo tutte le dimensioni del tensore tranne il primo NDIMS-1 nell'ultima dimensione del risultato.
flat_outer_dims () const
TTypes< T, NDIMS >::ConstTensor
matrix ()
TTypes< T >::Matrix
matrix () const
TTypes< T >::ConstMatrix
operator= (const Tensor & other)
Assegna operatore. Questo tensore condivide la memoria sottostante di altri.
operator= ( Tensor && other)
Sposta operatore. Vedi costruttore di mosse per i dettagli.
reinterpret_last_dimension ()
TTypes< T, NDIMS >:: Tensor
Restituisci i dati del tensore a un Eigen::Tensor con gli ultimi elementi di dimensione convertiti in singoli elementi di tipo più grande.
reinterpret_last_dimension () const
TTypes< T, NDIMS >::ConstTensor
Restituisci i dati del tensore a un Eigen::Tensor con gli ultimi elementi di dimensione convertiti in singoli elementi di tipo più grande.
scalar ()
TTypes< T >::Scalar
Restituisce i dati Tensor come TensorMap di dimensione fissa 1: TensorMap > TensorMap > .
scalar () const
TTypes< T >::ConstScalar
shape () const
const TensorShape &
Restituisce la forma del tensore.
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
Restituisce uno StringPiece che mappa il buffer del tensore corrente.
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
Restituisce i dati del tensore come Eigen::Tensor con il tipo e le dimensioni di questo Tensor .
vec () const
TTypes< T >::ConstVec
Versioni const di tutti i metodi sopra.

Funzioni pubbliche

Byte allocati

size_t AllocatedBytes() const 

ComeProtoField

void AsProtoField(
  TensorProto *proto
) const 

Compila proto con *this tensore.

AsProtoField() riempie il campo ripetuto per proto.dtype() , mentre AsProtoTensorContent() codifica il contenuto in proto.tensor_content() in una forma compatta.

AsProtoTensorContenuto

void AsProtoTensorContent(
  TensorProto *proto
) const 

BitcastDa

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

Copia l'altro tensore in questo tensore, rimodellalo e reinterpreta il tipo di dati del buffer.

Se viene restituito Status::OK(), i due tensori ora condividono la stessa memoria sottostante.

Questa chiamata richiede che l' other tensore e il tipo e la forma dati siano "compatibili" (cioè occupino lo stesso numero di byte).

Nello specifico:

shape.num_elements() * DataTypeSize(tipo)

deve essere uguale

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

Inoltre, questa funzione richiede:

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

Se uno qualsiasi dei requisiti non viene soddisfatto, viene restituito error::InvalidArgument.

CopiaDa

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

Copia l'altro tensore in questo tensore e rimodellalo.

Questo tensore condivide la memoria sottostante di altri. Restituisce true se e solo se other.shape() ha lo stesso numero di elementi della shape data.

DebugString

std::string DebugString(
  int num_values
) const 

Un riepilogo leggibile dall'uomo del tensore adatto per il debug.

DebugString

std::string DebugString() const 

DeviceSafeDebugString

std::string DeviceSafeDebugString() const 

FillDescrizione

void FillDescription(
  TensorDescription *description
) const 

Compila il protocollo TensorDescription con i metadati sul tensore utili per il monitoraggio e il debug.

Da Proto

bool FromProto(
  const TensorProto & other
) TF_MUST_USE_RESULT

Analizzare other e costruire il tensore.

Restituisce true se e solo se l'analisi ha esito positivo. Se l'analisi fallisce, lo stato di *this rimane invariato.

Da Proto

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

È allineato

bool IsAligned() const 

Restituisce vero se e solo se questo tensore è allineato.

IsInitialized

bool IsInitialized() const 

Se necessario, questo tensore è stato inizializzato?

I tensori a elemento zero sono sempre considerati inizializzati, anche se non sono mai stati assegnati e non hanno memoria allocata.

ÈSameSize

bool IsSameSize(
  const Tensor & b
) const 

NumElementi

int64 NumElements() const 

Accessorio conveniente per la forma del tensore.

ConteggioRifIsUno

bool RefCountIsOne() const 

SharesBufferWith

bool SharesBufferWith(
  const Tensor & b
) const 

Fetta

Tensor Slice(
  int64 dim0_start,
  int64 dim0_limit
) const 

Taglia questo tensore lungo la prima dimensione.

Cioè, il tensore restituito soddisfa return[i, ...] == this[dim0_start + i, ...]. Il tensore restituito condivide il buffer del tensore sottostante con questo tensore.

NOTA: il tensore restituito potrebbe non soddisfare gli stessi requisiti di allineamento di questo tensore a seconda della forma. Il chiamante deve controllare l'allineamento del tensore restituito prima di chiamare determinati metodi che hanno requisiti di allineamento (ad esempio, flat() , tensor() ).

NOTA: se alimentato con un tensore N-dimensionale, questo metodo restituisce un tensore anche con N dimensioni. Se vuoi selezionare un sottotensore, vedi SubSlice.

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

Sottofetta

Tensor SubSlice(
  int64 index
) const 

Seleziona una sottosezione da questo tensore lungo la prima dimensione.

Se alimentato con un tensore N-dimensionale, questo metodo restituisce un tensore con N-1 dimensioni, dove il tensore restituito è una sottosezione del tensore di input lungo la prima dimensione. Le dimensioni N-1 del tensore restituito sono le ultime dimensioni N-1 del tensore di input.

NOTA: il tensore restituito potrebbe non soddisfare gli stessi requisiti di allineamento di questo tensore a seconda della forma. Il chiamante deve controllare l'allineamento del tensore restituito prima di chiamare determinati metodi che hanno requisiti di allineamento (ad esempio, flat() , tensor() ).

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

RiepilogaValore

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

Rendere i primi valori max_entries in *this in una stringa.

Tensore

 Tensor()

Crea un tensore float unidimensionale a 0 elementi.

Il tensore restituito non è uno scalare (forma {}), ma è invece un tensore unidimensionale vuoto (forma {0}, NumElements() == 0). Poiché non ha elementi, non è necessario assegnargli un valore ed è inizializzato per impostazione predefinita ( IsInitialized() è true). Se ciò non è desiderabile, considera la creazione di uno scalare a un elemento che richiede l'inizializzazione:

Tensor(DT_FLOAT, TensorShape({}))

      

Tensor

 Tensor(
  DataType type,
  const TensorShape & shape
)

Crea un tensore del type e shape specificati.

Se LogMemory::IsEnabled() l'allocazione viene registrata come proveniente da un kernel e un passaggio sconosciuti. Chiamare il costruttore tensore direttamente dall'interno di un Op è deprecato: utilizzare i metodi OpKernelConstruction/OpKernelContext allocate_* per allocare un nuovo tensore, che registra il kernel e il passaggio.

Il buffer sottostante viene allocato utilizzando un CPUAllocator .

Tensore

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

Crea un tensore con type e shape di input, utilizzando l'allocatore a per allocare il buffer sottostante.

Se LogMemory::IsEnabled() l'allocazione viene registrata come proveniente da un kernel e un passaggio sconosciuti. Chiamare il costruttore tensore direttamente dall'interno di un Op è deprecato: utilizzare i metodi OpKernelConstruction/OpKernelContext allocate_* per allocare un nuovo tensore, che registra il kernel e il passaggio.

a deve sopravvivere alla vita di questo tensore .

Tensore

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

Crea un tensore con type e shape di input, utilizzando l'allocatore a e l'"allocation_attr" specificato per allocare il buffer sottostante.

Se il kernel e il passaggio sono noti, allocation_attr.allocation_will_be_logged deve essere impostato su true e LogMemory::RecordTensorAllocation deve essere chiamato dopo la costruzione del tensore. Chiamare il costruttore tensore direttamente dall'interno di un Op è deprecato: utilizzare i metodi OpKernelConstruction/OpKernelContext allocate_* per allocare un nuovo tensore, che registra il kernel e il passaggio.

a deve sopravvivere alla vita di questo tensore .

Tensore

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

Crea un tensore con il tipo di dati di input, forma e buf.

Acquisisce un ref su buf che appartiene a questo Tensor .

Tensore

 Tensor(
  DataType type
)

Crea un tensore vuoto del tipo di dati specificato.

Come Tensor() , restituisce un tensore unidimensionale a 0 elementi con IsInitialized() che restituisce True. Consulta la documentazione di Tensor() per i dettagli.

Tensore

 Tensor(
  float scalar_value
)

Tensore

 Tensor(
  double scalar_value
)

Tensore

 Tensor(
  int32 scalar_value
)

Tensore

 Tensor(
  uint32 scalar_value
)

Tensore

 Tensor(
  uint16 scalar_value
)

Tensore

 Tensor(
  uint8 scalar_value
)

Tensore

 Tensor(
  int16 scalar_value
)

Tensore

 Tensor(
  int8 scalar_value
)

Tensore

 Tensor(
  tstring scalar_value
)

Tensore

 Tensor(
  complex64 scalar_value
)

Tensore

 Tensor(
  complex128 scalar_value
)

Tensore

 Tensor(
  int64 scalar_value
)

Tensore

 Tensor(
  uint64 scalar_value
)

Tensore

 Tensor(
  bool scalar_value
)

Tensore

 Tensor(
  qint8 scalar_value
)

Tensore

 Tensor(
  quint8 scalar_value
)

Tensore

 Tensor(
  qint16 scalar_value
)

Tensore

 Tensor(
  quint16 scalar_value
)

Tensore

 Tensor(
  qint32 scalar_value
)

Tensore

 Tensor(
  bfloat16 scalar_value
)

Tensore

 Tensor(
  Eigen::half scalar_value
)

Tensore

 Tensor(
  ResourceHandle scalar_value
)

Tensore

 Tensor(
  const char *scalar_value
)

Tensore

 Tensor(
  const Tensor & other
)

Copia costruttore.

Tensore

 Tensor(
  Tensor && other
)

Sposta costruttore.

Dopo questa chiamata, è distruttibile in modo sicuro e può essere assegnato a, ma altre chiamate su di esso (ad esempio la manipolazione della forma) non sono valide.

Tensore

 Tensor(
  T *t
)=delete

Byte totali

size_t TotalBytes() const 

Restituisce l'utilizzo stimato della memoria di questo tensore.

UnsafeCopyFromInternal

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

Come BitcastFrom, ma CHECK fallisce se qualche precondizione non viene soddisfatta.

Deprecato. Utilizza invece BitcastFrom e controlla lo stato restituito.

bit_casted_shape

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

Restituisci i dati del tensore a un Eigen::Tensor con la nuova forma specificata in new_sizes e convertili in un nuovo dtype T .

L'utilizzo di un bitcast è utile per le operazioni di spostamento e copia. Il bitcast consentito è l'unica differenza rispetto a shaped() .

bit_casted_shape

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

Restituisci i dati del tensore a un Eigen::Tensor con la nuova forma specificata in new_sizes e convertili in un nuovo dtype T .

L'utilizzo di un bitcast è utile per le operazioni di spostamento e copia. Il bitcast consentito è l'unica differenza rispetto a shaped() .

bit_casted_tensor

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

Restituisce i dati del tensore a un Eigen::Tensor con la stessa dimensione ma un cast bit a bit al dtype T specificato.

L'utilizzo di un bitcast è utile per le operazioni di spostamento e copia. NOTA: è uguale a tensor() tranne per il fatto che è consentito un bitcast.

bit_casted_tensor

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

Restituisce i dati del tensore a un Eigen::Tensor con la stessa dimensione ma un cast bit a bit al dtype T specificato.

L'utilizzo di un bitcast è utile per le operazioni di spostamento e copia. NOTA: è uguale a tensor() tranne per il fatto che è consentito un bitcast.

dati

void * data() const 

dim_size

int64 dim_size(
  int d
) const 

Accessorio conveniente per la forma del tensore.

si attenua

int dims() const 

Accessorio conveniente per la forma del tensore.

Per tutti gli accessori di forma, vedere i commenti per i metodi rilevanti di TensorShape in tensor_shape.h .

dtype

DataType dtype() const 

Restituisce il tipo di dati.

Piatto

TTypes< T >::Flat flat()

Restituisce i dati del tensore come Eigen::Tensor del tipo di dati e di una forma specificata.

Questi metodi ti consentono di accedere ai dati con le dimensioni e le dimensioni di tua scelta. Non è necessario conoscere il numero di dimensioni del Tensore per chiamarle. Tuttavia, CHECK che il tipo corrisponda e le dimensioni richieste creano un Eigen::Tensor con lo stesso numero di elementi del tensore.

Esempio:

  
    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 

flat_inner_dims

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

Restituisce i dati come Eigen::Tensor con dimensioni NDIMS, comprimendo tutte le dimensioni del tensore tranne l'ultimo NDIMS-1 nella prima dimensione del risultato.

Se NDIMS > dims() verranno aggiunte le dimensioni iniziali di dimensione 1 per rendere l'output classificato 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
)

Restituisce i dati come Eigen::Tensor con dimensioni NDIMS, comprimendo le prime dimensioni del tensore 'begin' nella prima dimensione del risultato e le dimensioni del tensore dell'ultimo dims() - 'begin' - NDIMS nell'ultima dimensione del risultato.

Se 'begin' < 0 allora |'begin'| verranno aggiunte le dimensioni principali della dimensione 1. Se 'begin' + NDIMS > dims() allora verranno aggiunte 'begin' + NDIMS - dims() dimensioni finali di dimensione 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()

Restituisce i dati come Eigen::Tensor con dimensioni NDIMS, comprimendo tutte le dimensioni del tensore tranne il primo NDIMS-1 nell'ultima dimensione del risultato.

Se NDIMS > dims() verranno aggiunte le dimensioni finali di dimensione 1 per classificare l'output NDIMS.

flat_outer_dims

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

matrice

TTypes< T >::Matrix matrix()

matrice

TTypes< T >::ConstMatrix matrix() const 

operatore=

Tensor & operator=(
  const Tensor & other
)

Assegna operatore. Questo tensore condivide la memoria sottostante di altri.

operatore=

Tensor & operator=(
  Tensor && other
)

Sposta operatore. Vedi costruttore di mosse per i dettagli.

reinterpretare_ultima_dimensione

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

Restituisci i dati del tensore a un Eigen::Tensor con gli ultimi elementi di dimensione convertiti in singoli elementi di tipo più grande.

Ad esempio, questo è utile per i kernel che possono trattare i tensori NCHW_VECT_C int8 come tensori NCHW int32. La dimensione di (T) dovrebbe essere uguale alla dimensione dell'elemento originale tipo * num elementi nell'ultima dimensione originale. NDIMS dovrebbe essere 1 in meno rispetto al numero originale di dimensioni.

reinterpretare_ultima_dimensione

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

Restituisci i dati del tensore a un Eigen::Tensor con gli ultimi elementi di dimensione convertiti in singoli elementi di tipo più grande.

Ad esempio, questo è utile per i kernel che possono trattare i tensori NCHW_VECT_C int8 come tensori NCHW int32. La dimensione di (T) dovrebbe essere uguale alla dimensione dell'elemento originale tipo * num elementi nell'ultima dimensione originale. NDIMS dovrebbe essere 1 in meno rispetto al numero originale di dimensioni.

scalare

TTypes< T >::Scalar scalar()

Restituisce i dati Tensor come TensorMap di dimensione fissa 1: TensorMap > TensorMap > .

L'uso scalar() consente al compilatore di eseguire ottimizzazioni poiché la dimensione del tensore è nota in fase di compilazione.

scalare

TTypes< T >::ConstScalar scalar() const 

forma

const TensorShape & shape() const 

Restituisce la forma del tensore.

sagomato

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

sagomato

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

tensore

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

tensore

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

tensor_data

StringPiece tensor_data() const 

Restituisce uno StringPiece che mappa il buffer del tensore corrente.

Lo StringPiece restituito potrebbe puntare alla posizione di memoria su dispositivi che la CPU non può indirizzare direttamente.

NOTA: il buffer tensore sottostante viene conteggiato nuovamente, quindi la durata dei contenuti mappati da StringPiece corrisponde alla durata del buffer; i chiamanti dovrebbero assicurarsi che il buffer non venga distrutto mentre StringPiece è ancora in uso.

RICHIEDE: DataTypeCanUseMemcpy(dtype()) .

non allineato_piatto

TTypes< T >::UnalignedFlat unaligned_flat()

non allineato_piatto

TTypes< T >::UnalignedConstFlat unaligned_flat() const 

non allineato_formato

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

non allineato_formato

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

vec

TTypes< T >::Vec vec()

Restituisce i dati del tensore come Eigen::Tensor con il tipo e le dimensioni di questo Tensor .

Utilizzare questi metodi quando si conosce il tipo di dati e il numero di dimensioni del tensore e si desidera che un Eigen::Tensore venga dimensionato automaticamente in base alle dimensioni del tensore. Il controllo dell'implementazione fallisce se il tipo o le dimensioni non corrispondono.

Esempio:

  
    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 

Versioni const di tutti i metodi sopra.

~Tensore

 ~Tensor()