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) | |
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) | Tensor & Assegna l'operatore. Questo tensore condivide lo spazio di archiviazione sottostante con altri. |
operator= ( Tensor && other) | Tensor & 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 |
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( Tensor && other )
Sposta il costruttore.
Dopo questa chiamata,
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()