tensorflow :: Tensore
#include <tensor.h>
Rappresenta una matrice n-dimensionale di valori.
Sommario
Costruttori e distruttori | |
---|---|
Tensor () Crea un tensore a virgola mobile 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 la shape 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 la shape input, utilizzando l'allocatore a e "l'allocazione_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, la forma e il 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 () |
Funzioni pubbliche | |
---|---|
AllocatedBytes () const | size_t |
AsProtoField (TensorProto *proto) const | void Riempie il proto con *this il contenuto di *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 sommario leggibile dall'uomo del tensore adatto per il debug. |
DebugString () const | string |
DeviceSafeDebugString () const | string |
FillDescription (TensorDescription *description) const | void Compilare il TensorDescription con 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 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 Comodo accessorio 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 max_entries 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 il CONTROLLO fallisce se non vengono soddisfatte le condizioni preliminari. |
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 e cast a un nuovo dtype 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 e cast a 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 per 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 per bit al dtype T specificato. |
dim_size (int d) const | int64 Comodo accessorio per la forma del tensore. |
dims () const | int Comodo accessorio 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 tensoriali 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 |
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 Tensor 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 il costruttore di mosse per i dettagli. |
reinterpret_last_dimension () | TTypes< T, NDIMS >:: Tensor Restituisce i dati del tensore a un Eigen::Tensor con gli ultimi elementi dimensione convertiti in elementi singoli di un tipo più grande. |
reinterpret_last_dimension () const | TTypes< T, NDIMS >::ConstTensor Restituisce i dati del tensore a un Eigen::Tensor con gli ultimi elementi 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 oggetto StringPiece 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 Const versioni di tutti i metodi sopra. |
Funzioni pubbliche
AllocatedBytes
size_t AllocatedBytes() const
AsProtoField
void AsProtoField( TensorProto *proto ) const
Riempie il proto
con *this
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 la stessa memoria sottostante.
Questa chiamata richiede che l' other
tensore e il tipo e la forma dati siano "compatibili" (cioè occupano 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 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 la memoria sottostante di altri. Restituisce true
se true
solo se other.shape()
ha lo stesso numero di elementi della shape
data.
DebugString
string DebugString( int num_values ) const
Un sommario leggibile dall'uomo del tensore adatto per il debug.
DebugString
string DebugString() const
DeviceSafeDebugString
string DeviceSafeDebugString() const
FillDescription
void FillDescription( TensorDescription *description ) const
Compila il TensorDescription
con i metadati relativi al tensore utili per il monitoraggio e il debug.
FromProto
bool FromProto( const TensorProto & other ) TF_MUST_USE_RESULT
Analizza other
e costruisci il tensore.
Restituisce true
se true
solo se l'analisi riesce. Se l'analisi fallisce, lo stato di *this
è invariato.
FromProto
bool FromProto( Allocator *a, const TensorProto & other ) TF_MUST_USE_RESULT
IsAligned
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 elementi zero sono sempre considerati inizializzati, anche se non sono mai stati assegnati e non hanno memoria allocata.
IsSameSize
bool IsSameSize( const Tensor & b ) const
NumElements
int64 NumElements() const
Comodo accessorio per la forma del tensore.
CondivisioniBufferWith
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 [i, ...] == questo [dim0_start + i, ...] restituito. Il tensore restituito condivide il buffer tensore sottostante con questo tensore.
NOTA: il tensore restituito potrebbe non soddisfare lo stesso requisito di allineamento di questo tensore a seconda della forma. Il chiamante deve controllare l'allineamento del tensore restituito prima di chiamare alcuni metodi che hanno requisiti di allineamento (ad esempio, flat()
, tensor()
).
NOTA: quando 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)
SubSlice
Tensor SubSlice( int64 index ) const
Seleziona una sottosezione da questo tensore lungo la prima dimensione.
Quando alimentato con un tensore N-dimensionale, questo metodo restituisce un tensore con dimensioni N-1, 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 lo stesso requisito di allineamento di questo tensore a seconda della forma. Il chiamante deve controllare l'allineamento del tensore restituito prima di chiamare alcuni metodi che hanno requisiti di allineamento (ad esempio, flat()
, tensor()
).
RICHIEDE: dims()
> = 1 RICHIEDE: 0 <= dim0_start < dim_size(0)
SummarizeValue
string SummarizeValue( int64 max_entries, bool print_v2 ) const
max_entries
i primi valori max_entries
in *this
in una stringa.
Tensore
Tensor()
Crea un tensore a virgola mobile 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 della shape
.
Se LogMemory :: IsEnabled (), l'allocazione viene registrata come proveniente da un kernel e un passaggio sconosciuti. Chiamare il costruttore Tensor direttamente dall'interno di un Op è deprecato: usa i metodi OpKernelConstruction / OpKernelContext allocate_ * per allocare un nuovo tensore, che registra il kernel e il passo.
Il buffer sottostante viene allocato utilizzando un CPUAllocator
.
Tensore
Tensor( Allocator *a, DataType type, const TensorShape & shape )
Crea un tensore con il type
e la shape
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 Tensor direttamente dall'interno di un Op è deprecato: usa i metodi OpKernelConstruction / OpKernelContext allocate_ * per allocare un nuovo tensore, che registra il kernel e il passo.
a
must per sopravvivere alla vita di questo tensore .
Tensore
Tensor( Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr )
Crea un tensore con il type
e la shape
input, utilizzando l'allocatore a
e "allocation_attr" specificato per allocare il buffer sottostante.
Se il kernel e il passaggio sono noti, allocation_attr.allocation_will_be_logged dovrebbe essere impostato su true e LogMemory :: RecordTensorAllocation dovrebbe essere chiamato dopo che il tensore è stato costruito. Chiamare il costruttore Tensor direttamente dall'interno di un Op è deprecato: usa i metodi OpKernelConstruction / OpKernelContext allocate_ * per allocare un nuovo tensore, che registra il kernel e il passo.
a
must per 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, la forma e il buf.
Acquisisce un riferimento su buf che appartiene a questo tensore .
Tensore
Tensor( DataType type )
Crea un tensore vuoto del tipo di dati specificato.
Come Tensor () , restituisce un Tensore a 0 elementi unidimensionale con IsInitialized () che restituisce True. Vedere 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( Tensor && other )
Sposta costruttore.
Dopo questa chiamata,
TotalBytes
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 il CONTROLLO fallisce se non vengono soddisfatte le condizioni preliminari.
Deprecato. Usa invece BitcastFrom e controlla 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
e cast a un nuovo dtype T
L'utilizzo di un bitcast è utile per le operazioni di spostamento e copia. Il bitcast consentito è l'unica differenza rispetto shaped()
shape shaped()
.
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
e cast a un nuovo dtype T
L'utilizzo di un bitcast è utile per le operazioni di spostamento e copia. Il bitcast consentito è l'unica differenza da shape 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 per bit al dtype T
specificato.
L'utilizzo di un bitcast è utile per le operazioni di spostamento e copia. NOTA: questo è lo stesso di 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 per bit al dtype T
specificato.
L'utilizzo di un bitcast è utile per le operazioni di spostamento e copia. NOTA: questo è lo stesso di tensor()
tranne per il fatto che è consentito un bitcast.
dim_size
int64 dim_size( int d ) const
Comodo accessorio per la forma del tensore.
si attenua
int dims() const
Comodo accessorio per la forma del tensore.
Per tutte le TensorShape
di TensorShape
alle forme, vedere i commenti per i metodi pertinenti 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 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 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 ({4, 15}); // CHECK fails, bad num elements: auto outer = my_ten.shaped ({4, 8}); // 3D Eigen::Tensor 6 x 5 x 2: auto weird = my_ten.shaped ({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 tensoriali tranne l'ultimo NDIMS-1 nella prima dimensione del risultato.
Se NDIMS> dims (), verranno aggiunte le quote iniziali di dimensione 1 per rendere NDIMS il rango di output.
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 Tensor " iniziali " nella prima dimensione del risultato e le dimensioni Tensor degli ultimi dim () - "begin" - NDIMS nell'ultima dimensione del risultato.
Se 'inizio' <0 allora il | 'inizio' | verranno aggiunte le dimensioni iniziali della dimensione 1. Se 'begin' + NDIMS> dims () allora 'begin' + NDIMS - verranno aggiunte le dimensioni finali dims () 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()
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 il costruttore di mosse per i dettagli.
reinterpret_last_dimension
TTypes< T, NDIMS >::Tensor reinterpret_last_dimension()
Restituisce i dati del tensore a un Eigen::Tensor
con gli ultimi elementi 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. La dimensione di (T) dovrebbe essere uguale alla dimensione del tipo di elemento originale * num elementi nell'ultima dimensione originale. NDIMS dovrebbe essere 1 in meno rispetto al numero di dimensioni originale.
reinterpret_last_dimension
TTypes< T, NDIMS >::ConstTensor reinterpret_last_dimension() const
Restituisce i dati del tensore a un Eigen::Tensor
con gli ultimi elementi 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. La dimensione di (T) dovrebbe essere uguale alla dimensione del tipo di elemento originale * num elementi nell'ultima dimensione originale. NDIMS dovrebbe essere 1 in meno rispetto al numero di dimensioni originale.
scalare
TTypes< T >::Scalar scalar()
scalare
TTypes< T >::ConstScalar scalar() const
forma
const TensorShape & shape() const
Restituisce la forma del tensore.
a forma di
TTypes< T, NDIMS >::Tensor shaped( gtl::ArraySlice< int64 > new_sizes )
a forma di
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 un oggetto StringPiece
mappa il buffer del tensore corrente.
Lo StringPiece
restituito può puntare a una posizione di memoria su dispositivi che la CPU non può indirizzare direttamente.
NOTA: il buffer tensore sottostante viene contato di nuovo, 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())
.
unaligned_flat
TTypes< T >::UnalignedFlat unaligned_flat()
unaligned_flat
TTypes< T >::UnalignedConstFlat unaligned_flat() const
unaligned_shaped
TTypes< T, NDIMS >::UnalignedTensor unaligned_shaped( gtl::ArraySlice< int64 > new_sizes )
unaligned_shaped
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 tensore.
Utilizzare questi metodi quando si conosce il tipo di dati e il numero di dimensioni del tensore e si desidera che un Eigen :: Tensor ridimensionato automaticamente alle dimensioni del tensore. Il controllo dell'implementazione non riesce 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 (); // 2D Eigen::Tensor, 3 x 5. auto vec = my_mat.vec (); // CHECK fails as my_mat is 2D. auto vec = my_mat.tensor (); // CHECK fails as my_mat is 2D. auto mat = my_mat.matrix ();// CHECK fails as type mismatch.
vec
TTypes< T >::ConstVec vec() const
Const versioni di tutti i metodi sopra.
~ Tensore
~Tensor()