tensorflow:: Tensor

#include <tensor.h>

Rappresenta un array n-dimensionale di valori.

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

Funzioni pubbliche

AllocatedBytes () const
size_t
AsProtoField (TensorProto *proto) const
void
Riempie il file proto con il contenuto di *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 del tensore leggibile dall'uomo, adatto al debug.
DebugString () const
std::string
DeviceSafeDebugString () const
std::string
FillDescription (TensorDescription *description) const
void
Inserisci nel protocollo TensorDescription i metadati relativi al tensore utili per il monitoraggio e il debug.
FromProto (const TensorProto & other) TF_MUST_USE_RESULT
bool
Analizza other e costruisci il tensore.
FromProto (Allocator *a, const TensorProto & other) TF_MUST_USE_RESULT
bool
IsAligned () const
bool
Restituisce true 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
Accesso di convenienza per la forma del tensore.
RefCountIsOne () const
bool
SharesBufferWith (const Tensor & b) const
bool
Slice (int64 dim0_start, int64 dim0_limit) const
Seziona 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
Converti i primi valori max_entries in *this in una stringa.
TotalBytes () const
size_t
Restituisce la stima dell'utilizzo della memoria da parte di questo tensore.
UnsafeCopyFromInternal (const Tensor & other, DataType dtype, const TensorShape & shape)
void
Simile a BitcastFrom, ma CHECK fallisce se non vengono soddisfatte alcune delle precondizioni.
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes)
TTypes< T, NDIMS >:: Tensor
Restituisce i dati del tensore a un Eigen::Tensor con la nuova forma specificata in new_sizes ed effettua il cast a un nuovo tipo di dati T
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) const
TTypes< T, NDIMS >::ConstTensor
Restituisce i dati del tensore a un Eigen::Tensor con la nuova forma specificata in new_sizes ed effettua il cast a un nuovo tipo di dati T
bit_casted_tensor ()
TTypes< T, NDIMS >:: Tensor
Restituisce i dati del tensore a un Eigen::Tensor con le stesse dimensioni ma con un cast bit a bit al tipo di dati specificato T
bit_casted_tensor () const
TTypes< T, NDIMS >::ConstTensor
Restituisce i dati del tensore a un Eigen::Tensor con le stesse dimensioni ma con un cast bit a bit al tipo di dati specificato T
data () const
void *
dim_size (int d) const
int64
Accesso di convenienza per la forma del tensore.
dims () const
int
Accesso di convenienza per la forma del tensore.
dtype () const
DataType
Restituisce il tipo di dati.
flat ()
TTypes< T >::Flat
Restituisce i dati del tensore come un Eigen::Tensor del tipo di dati e della forma specificata.
flat () const
TTypes< T >::ConstFlat
flat_inner_dims ()
TTypes< T, NDIMS >:: Tensor
Restituisce i dati come un Eigen::Tensor con dimensioni NDIMS, comprimendo tutte le dimensioni del tensore tranne l'ultima 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 un 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 un Eigen::Tensor con dimensioni NDIMS, comprimendo tutte le dimensioni del tensore tranne la prima 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 l'operatore. Questo tensore condivide lo spazio di archiviazione sottostante con altri.
operator= ( Tensor && other)
Operatore di spostamento. Per i dettagli, consultare il costruttore di spostamento.
reinterpret_last_dimension ()
TTypes< T, NDIMS >:: Tensor
Restituisce i dati del tensore a un Eigen::Tensor con gli elementi dell'ultima dimensione convertiti in singoli elementi di un tipo più grande.
reinterpret_last_dimension () const
TTypes< T, NDIMS >::ConstTensor
Restituisce i dati del tensore a un Eigen::Tensor con gli elementi dell'ultima dimensione convertiti in singoli elementi di un tipo più grande.
scalar ()
TTypes< T >::Scalar
Restituisci i dati del tensore come TensorMap di dimensione fissa 1: 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 un 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 un Eigen::Tensor con il tipo e le dimensioni di questo Tensor .
vec () const
TTypes< T >::ConstVec
Versioni costanti di tutti i metodi sopra descritti.

Funzioni pubbliche

Byte allocati

size_t AllocatedBytes() const 

ComeProtoField

void AsProtoField(
  TensorProto *proto
) const 

Riempie il file proto con il contenuto di *this tensore.

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

AsProtoTensorContent

void AsProtoTensorContent(
  TensorProto *proto
) const 

BitcastFrom

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 lo stesso spazio di archiviazione sottostante.

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

Nello specifico:

shape.num_elements() * DataTypeSize(type)

deve essere uguale

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

Inoltre, questa funzione richiede:

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

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

Copia da

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

Copia l'altro tensore in questo tensore e rimodellalo.

Questo tensore condivide lo spazio di archiviazione sottostante di altri. Restituisce true se e solo se other.shape() ha lo stesso numero di elementi della shape specificata.

DebugString

std::string DebugString(
  int num_values
) const 

Un riepilogo del tensore leggibile dall'uomo, adatto al debug.

DebugString

std::string DebugString() const 

DeviceSafeDebugString

std::string DeviceSafeDebugString() const 

Descrizione del prodotto

void FillDescription(
  TensorDescription *description
) const 

Inserisci nel protocollo TensorDescription i metadati relativi al tensore utili per il monitoraggio e il debug.

Da Proto

bool FromProto(
  const TensorProto & other
) TF_MUST_USE_RESULT

Analizza other e costruisci il tensore.

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

Da Proto

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

IsAligned

bool IsAligned() const 

Restituisce true se e solo se questo tensore è allineato.

IsInitialized

bool IsInitialized() const 

Se necessario, questo tensore è stato inizializzato?

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

È DELLA STESSA DIMENSIONE

bool IsSameSize(
  const Tensor & b
) const 

NumeroElementi

int64 NumElements() const 

Accesso di convenienza per la forma del tensore.

RefCountIsOne

bool RefCountIsOne() const 

SharesBufferWith

bool SharesBufferWith(
  const Tensor & b
) const 

Fetta

Tensor Slice(
  int64 dim0_start,
  int64 dim0_limit
) const 

Seziona questo tensore lungo la prima dimensione.

Ovvero, il tensore restituito soddisfa returned[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 sua forma. Chi chiama deve verificare 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 anch'esso con N dimensioni. Se si desidera selezionare un sottotensore, consultare SubSlice.

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

Sottosezione

Tensor SubSlice(
  int64 index
) const 

Seleziona una sottosezione da questo tensore lungo la prima dimensione.

Quando viene fornito in input 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 N-1 dimensioni del tensore restituito corrispondono alle ultime N-1 dimensioni del tensore di input.

NOTA: Il tensore restituito potrebbe non soddisfare gli stessi requisiti di allineamento di questo tensore, a seconda della sua forma. Chi chiama deve verificare 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 

Converti 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 questo non è desiderabile, si può considerare la creazione di uno scalare con un solo elemento che richiede l'inizializzazione:

Tensor(DT_FLOAT, TensorShape({}))

      

Tensor

 Tensor(
  DataType type,
  const TensorShape & shape
)

Crea un tensore del type e della shape specificati.

Se LogMemory::IsEnabled() è disabilitato, l'allocazione viene registrata come proveniente da un kernel e uno step sconosciuti. La chiamata diretta al costruttore del tensore dall'interno di un'operazione è deprecata: utilizzare i metodi allocate_* di OpKernelConstruction/OpKernelContext per allocare un nuovo tensore, che registrano il kernel e lo step.

Il buffer sottostante viene allocato utilizzando un CPUAllocator .

Tensore

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

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

Se LogMemory::IsEnabled() è disabilitato, l'allocazione viene registrata come proveniente da un kernel e uno step sconosciuti. La chiamata diretta al costruttore del tensore dall'interno di un'operazione è deprecata: utilizzare i metodi allocate_* di OpKernelConstruction/OpKernelContext per allocare un nuovo tensore, che registrano il kernel e lo step.

a sopravvivere alla durata di vita di questo tensore .

Tensore

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

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

Se il kernel e il passo sono noti, allocation_attr.allocation_will_be_logged deve essere impostato su true e LogMemory::RecordTensorAllocation deve essere chiamato dopo la costruzione del tensore. La chiamata diretta al costruttore del tensore dall'interno di un'operazione è deprecata: utilizzare i metodi allocate_* di OpKernelConstruction/OpKernelContext per allocare un nuovo tensore, che registrano il kernel e il passo.

a sopravvivere alla durata di vita di questo tensore .

Tensore

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

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

Acquisisce un riferimento a buf che appartiene a questo tensore .

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. Per maggiori dettagli, consultare la documentazione di Tensor() .

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
)

Costruttore di copia.

Tensore

 Tensor(
  Tensor && other
)

Sposta il costruttore.

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

Tensore

 Tensor(
  T *t
)=delete

TotalBytes

size_t TotalBytes() const 

Restituisce la stima dell'utilizzo della memoria da parte di questo tensore.

Copia non sicura dall'interno

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

Simile a BitcastFrom, ma CHECK fallisce se non vengono soddisfatte alcune delle precondizioni.

Obsoleto. Utilizzare BitcastFrom al suo posto e verificare lo stato restituito.

bit_casted_shaped

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

Restituisce i dati del tensore a un Eigen::Tensor con la nuova forma specificata in new_sizes ed effettua il cast a un nuovo tipo di dati T

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

bit_casted_shaped

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

Restituisce i dati del tensore a un Eigen::Tensor con la nuova forma specificata in new_sizes ed effettua il cast a un nuovo tipo di dati T

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

tensore convertito in bit

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

Restituisce i dati del tensore a un Eigen::Tensor con le stesse dimensioni ma con un cast bit a bit al tipo di dati specificato T

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

tensore convertito in bit

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

Restituisce i dati del tensore a un Eigen::Tensor con le stesse dimensioni ma con un cast bit a bit al tipo di dati specificato T

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

dati

void * data() const 

dimensione

int64 dim_size(
  int d
) const 

Accesso di convenienza per la forma del tensore.

dimensioni

int dims() const 

Accesso di convenienza per la forma del tensore.

Per tutti gli accessor di forma, vedere i commenti relativi ai metodi 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 un Eigen::Tensor del tipo di dati e della forma specificata.

Questi metodi consentono di accedere ai dati con le dimensioni e le dimensioni desiderate. Non è necessario conoscere il numero di dimensioni del tensore per richiamarli. Tuttavia, CHECK che il tipo corrisponda e che le dimensioni richieste creino 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 

dimensioni interne piatte

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

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

Se NDIMS > dims(), verranno aggiunte dimensioni iniziali di dimensione 1 per far sì che l'output abbia rango NDIMS.

dimensioni interne piatte

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

dimensioni interne ed esterne piatte

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

Restituisce i dati come un 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, verranno aggiunte le |'begin'| dimensioni iniziali di dimensione 1. Se 'begin' + NDIMS > dims() , verranno aggiunte le dimensioni finali di dimensione 1: 'begin' + NDIMS - dims() .

dimensioni interne ed esterne piatte

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

dimensioni esterne piatte

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

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

Se NDIMS > dims(), verranno aggiunte dimensioni finali di dimensione 1 per far sì che l'output abbia rango NDIMS.

dimensioni esterne piatte

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 l'operatore. Questo tensore condivide lo spazio di archiviazione sottostante con altri.

operatore=

Tensor & operator=(
  Tensor && other
)

Operatore di spostamento. Per i dettagli, consultare il costruttore di spostamento.

reinterpreta_ultima_dimensione

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

Restituisce i dati del tensore a un Eigen::Tensor con gli elementi dell'ultima dimensione convertiti in singoli elementi di un tipo più grande.

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

reinterpreta_ultima_dimensione

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

Restituisce i dati del tensore a un Eigen::Tensor con gli elementi dell'ultima dimensione convertiti in singoli elementi di un tipo più grande.

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

scalare

TTypes< T >::Scalar scalar()

Restituisci i dati del tensore come TensorMap di dimensione fissa 1: TensorMap > .

L'utilizzo di 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 

tensore dati

StringPiece tensor_data() const 

Restituisce un oggetto StringPiece che mappa il buffer del tensore corrente.

La stringa restituita (StringPiece) potrebbe puntare a una posizione di memoria su dispositivi che la CPU non può indirizzare direttamente.

NOTA: Il buffer tensoriale sottostante è gestito tramite conteggio dei riferimenti, pertanto la durata del contenuto mappato da StringPiece corrisponde alla durata del buffer; chi effettua la chiamata deve assicurarsi che il buffer non venga distrutto mentre StringPiece è ancora in uso.

RICHIEDE: DataTypeCanUseMemcpy(dtype()) .

piatto non allineato

TTypes< T >::UnalignedFlat unaligned_flat()

piatto non allineato

TTypes< T >::UnalignedConstFlat unaligned_flat() const 

forma non allineata

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

forma non allineata

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

veicolo

TTypes< T >::Vec vec()

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

Utilizza questi metodi quando conosci il tipo di dati e il numero di dimensioni del Tensor e desideri che un Eigen::Tensor venga dimensionato automaticamente in base alle dimensioni del Tensor. 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 costanti di tutti i metodi sopra descritti.

~Tensor

 ~Tensor()