Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

tensorflow :: Tensor

#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)
Crea un tensore del type e della 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 Tensor 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 un 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.
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 &
Operatore di spostamento. 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 elementi singoli di un tipo più grande.
scalar ()
TTypes< T >::Scalar
Restituisce i dati Tensor come TensorMap di dimensione fissa 1: TensorMap > TensorMap > .
scalar () const
TTypes< T >::ConstScalar
shape () const
const TensorShape &
Restituisce la forma del tensore.
shaped (gtl::ArraySlice< int64 > new_sizes)
TTypes< T, NDIMS >:: Tensor
shaped (gtl::ArraySlice< int64 > new_sizes) const
TTypes< T, NDIMS >::ConstTensor
tensor ()
TTypes< T, NDIMS >:: Tensor
tensor () const
TTypes< T, NDIMS >::ConstTensor
tensor_data () const
StringPiece
Restituisce 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).

In particolare:

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 

Compilare 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.

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 [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 determinati 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.

Tensor

 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 .

Tensor

 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 .

Tensor

 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.

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 .

Tensor

 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 .

Tensor

 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.

Tensor

 Tensor(
  float scalar_value
)

Tensor

 Tensor(
  double scalar_value
)

Tensor

 Tensor(
  int32 scalar_value
)

Tensor

 Tensor(
  uint32 scalar_value
)

Tensor

 Tensor(
  uint16 scalar_value
)

Tensor

 Tensor(
  uint8 scalar_value
)

Tensor

 Tensor(
  int16 scalar_value
)

Tensor

 Tensor(
  int8 scalar_value
)

Tensor

 Tensor(
  tstring scalar_value
)

Tensor

 Tensor(
  complex64 scalar_value
)

Tensor

 Tensor(
  complex128 scalar_value
)

Tensor

 Tensor(
  int64 scalar_value
)

Tensor

 Tensor(
  uint64 scalar_value
)

Tensor

 Tensor(
  bool scalar_value
)

Tensor

 Tensor(
  qint8 scalar_value
)

Tensor

 Tensor(
  quint8 scalar_value
)

Tensor

 Tensor(
  qint16 scalar_value
)

Tensor

 Tensor(
  quint16 scalar_value
)

Tensor

 Tensor(
  qint32 scalar_value
)

Tensor

 Tensor(
  bfloat16 scalar_value
)

Tensor

 Tensor(
  Eigen::half scalar_value
)

Tensor

 Tensor(
  ResourceHandle scalar_value
)

Tensor

 Tensor(
  const char *scalar_value
)

Tensor

 Tensor(
  const Tensor & other
)

Copia costruttore.

Tensor

 Tensor(
  Tensor && other
)

Sposta costruttore.

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

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 rispetto shaped() 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 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 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 Tensor tranne l'ultimo NDIMS-1 nella prima dimensione del risultato.

Se NDIMS> dims (), le dimensioni iniziali di dimensione 1 verranno aggiunte per rendere NDIMS di 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 un 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()

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

Se NDIMS> dims (), le dimensioni finali di dimensione 1 verranno aggiunte per rendere NDIMS di rango di output.

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
)

Operatore di spostamento. 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 elementi singoli 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 elementi singoli 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()

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

L'uso 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.

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 dallo 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.

~ Tensor

 ~Tensor()