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) | |
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) 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 (string 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 () |
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) | 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 | string Un riepilogo leggibile dall'uomo del tensore adatto per il debug. |
DebugString () const | string |
DeviceSafeDebugString () const | 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. |
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 | 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. |
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) | Tensor & Assegna operatore. Questo tensore condivide la memoria sottostante di altri. |
operator= ( Tensor && other) | Tensor & 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 |
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
string DebugString( int num_values ) const
Un riepilogo leggibile dall'uomo del tensore adatto per il debug.
DebugString
string DebugString() const
DeviceSafeDebugString
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.
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 <= dim0_start < dim_size(0)
RiepilogaValore
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 )
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( string 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 costruttore.
Dopo questa chiamata,
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 Status 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.
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()
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()