flusso tensoriale:: 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)
Crea un Tensor del type e della shape indicati.
Tensor (Allocator *a, DataType type, const TensorShape & shape)
Crea un tensore con l'input type e shape , usando l'allocatore a per allocare il buffer sottostante.
Tensor (Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr)
Crea un tensore con l'input type e shape , usando l'allocatore a e il parametro "allocation_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)
Costruttore di copia.
Tensor ( Tensor && other)
Muovi il costruttore.
~Tensor ()

Funzioni pubbliche

AllocatedBytes () const
size_t
AsProtoField (TensorProto *proto) const
void
Completa il 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
string
Un riassunto leggibile dall'uomo del tensore adatto per il debug.
DebugString () const
string
DeviceSafeDebugString () const
string
FillDescription (TensorDescription *description) const
void
Compila il prototipo TensorDescription con i metadati sul 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 questo tensore è allineato.
IsInitialized () const
bool
Se necessario, questo Tensor è stato inizializzato?
IsSameSize (const Tensor & b) const
bool
NumElements () const
int64
Comodo accessorio per la forma del tensore.
RefCountIsOne () const
bool
SharesBufferWith (const Tensor & b) const
bool
Slice (int64 dim0_start, int64 dim0_limit) const
Taglia questo tensore lungo la 1a dimensione.
SubSlice (int64 index) const
Seleziona una sottosezione da questo tensore lungo la 1a dimensione.
SummarizeValue (int64 max_entries, bool print_v2) const
string
Rendi i primi valori di max_entries in *this in una stringa.
TotalBytes () const
size_t
Restituisce l'utilizzo di memoria stimato di questo tensore.
UnsafeCopyFromInternal (const Tensor & other, DataType dtype, const TensorShape & shape)
void
Come BitcastFrom, ma CHECK non riesce se non vengono soddisfatte eventuali 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 e lancia su 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 lancia su 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.
data () const
void *
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 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 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)
Assegna operatore. Questo tensore condivide l'archiviazione sottostante di altri.
operator= ( Tensor && other)
Sposta operatore. Vedere 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 di dimensione convertiti in elementi singoli di tipo più grande.
reinterpret_last_dimension () const
TTypes< T, NDIMS >::ConstTensor
Restituisce i dati del tensore a un Eigen::Tensor con gli ultimi elementi di dimensione convertiti in elementi singoli di tipo più grande.
scalar ()
TTypes< T >::Scalar
Restituisce i dati Tensor come una 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 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
Versioni const di tutti i metodi sopra.

Funzioni pubbliche

Byte allocati

size_t AllocatedBytes() const 

Come ProtoField

void AsProtoField(
  TensorProto *proto
) const 

Completa il proto con il contenuto di *this tensore.

AsProtoField() compila il campo ripetuto per proto.dtype() , mentre AsProtoTensorContent() codifica il contenuto in proto.tensor_content() in un formato compatto.

AsProtoTensorContent

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 condividono ora 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 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 l'archiviazione sottostante di altri. Restituisce true se other.shape() ha lo stesso numero di elementi della shape data.

DebugString

string DebugString(
  int num_values
) const 

Un riassunto 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 prototipo TensorDescription con i metadati sul 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 ha esito positivo. Se l'analisi non riesce, lo stato di *this è invariato.

Da Proto

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

è allineato

bool IsAligned() const 

Restituisce vero se questo tensore è allineato.

È inizializzato

bool IsInitialized() const 

Se necessario, questo Tensor è stato inizializzato?

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

È la stessa dimensione

bool IsSameSize(
  const Tensor & b
) const 

NumElements

int64 NumElements() const 

Comodo accessorio per la forma del tensore.

RefCountIsOne

bool RefCountIsOne() const 

Azioni BufferWith

bool SharesBufferWith(
  const Tensor & b
) const 

Fetta

Tensor Slice(
  int64 dim0_start,
  int64 dim0_limit
) const 

Taglia questo tensore lungo la 1a dimensione.

Cioè, il tensore restituito soddisfa restituito[i, ...] == this[dim0_start + i, ...]. 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 es. 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 1a dimensione.

Quando viene 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 N-1 dimensioni 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 determinati metodi che hanno requisiti di allineamento (ad es. flat() , tensor() ).

RICHIEDE: dims() >= 1 RICHIEDE: 0 <= index < dim_size(0)

Riassumi valore

string SummarizeValue(
  int64 max_entries,
  bool print_v2
) const 

Rendi i primi valori di 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 che gli venga assegnato un valore e viene inizializzato per impostazione predefinita ( IsInitialized() è true). Se ciò non è desiderabile, prendere in considerazione 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 Tensor del type e della shape indicati.

Se LogMemory::IsEnabled() l'allocazione viene registrata come proveniente da un kernel e un passaggio sconosciuti. La chiamata al costruttore Tensor direttamente dall'interno di un Op è deprecata: usa 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 l'input type e shape , usando l'allocatore a per allocare il buffer sottostante.

Se LogMemory::IsEnabled() l'allocazione viene registrata come proveniente da un kernel e un passaggio sconosciuti. La chiamata al costruttore Tensor direttamente dall'interno di un Op è deprecata: usa i metodi OpKernelConstruction/OpKernelContext allocate_* per allocare un nuovo tensore, che registra il kernel e il passaggio.

a must sopravvive alla vita di questo Tensor .

Tensore

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

Crea un tensore con l'input type e shape , usando l'allocatore a e il parametro "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. La chiamata al costruttore Tensor direttamente dall'interno di un Op è deprecata: usa i metodi OpKernelConstruction/OpKernelContext allocate_* per allocare un nuovo tensore, che registra il kernel e il passaggio.

a must sopravvive alla vita di questo Tensor .

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 ref su buf che appartiene a questo Tensor .

Tensore

 Tensor(
  DataType type
)

Crea un tensore vuoto del tipo di dati specificato.

Come Tensor() , restituisce un Tensor unidimensionale a 0 elementi con IsInitialized() che restituisce True. Vedere la documentazione 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(
  const Tensor & other
)

Costruttore di copia.

Tensore

 Tensor(
  Tensor && other
)

Muovi il costruttore.

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

Byte totali

size_t TotalBytes() const 

Restituisce l'utilizzo di memoria stimato di questo tensore.

UnsafeCopyFromInternal

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

Come BitcastFrom, ma CHECK non riesce se non vengono soddisfatte eventuali precondizioni.

Deprecato. Utilizzare invece BitcastFrom e controllare 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 lancia su un nuovo dtype T .

L'uso di un bitcast è utile per le operazioni di spostamento e copia. Il bitcast consentito è l'unica differenza da 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 lancia su un nuovo dtype T .

L'uso 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'uso di un bitcast è utile per le operazioni di spostamento e copia. NOTA: è 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'uso di un bitcast è utile per le operazioni di spostamento e copia. NOTA: è lo stesso di tensor() tranne per il fatto che è consentito un bitcast.

dati

void * data() const 

dim_dimensione

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 funzioni di accesso di forma, vedere i commenti per i metodi pertinenti di TensorShape in tensor_shape.h .

tipo d

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 dimensioni e dimensioni a tua scelta. Non è necessario conoscere il numero di dimensioni del Tensor per chiamarli. Tuttavia, CHECK che il tipo corrisponda e le dimensioni richieste crea 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 fare in modo che l'output rank 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 iniziali di dimensione 1. Se 'begin' + NDIMS > dims () verranno aggiunte le dimensioni finali 'begin' + NDIMS - 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 () verranno aggiunte le dimensioni finali di dimensione 1 per fare in modo che l'output rank 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 l'archiviazione sottostante di altri.

operatore=

Tensor & operator=(
  Tensor && other
)

Sposta operatore. Vedere 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 di dimensione convertiti in elementi singoli di tipo più grande.

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

reinterpret_last_dimension

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

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

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

scalare

TTypes< T >::Scalar scalar()

Restituisce i dati Tensor come una 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.

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 

dati_tensore

StringPiece tensor_data() const 

Restituisce un 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 del tensore sottostante viene riconteggiato, quindi la durata del contenuto mappato da StringPiece corrisponde alla durata del buffer; i chiamanti dovrebbero assicurarsi che il buffer non venga distrutto mentre StringPiece è ancora utilizzato.

RICHIEDE: DataTypeCanUseMemcpy(dtype()) .

unaligned_flat

TTypes< T >::UnalignedFlat unaligned_flat()

unaligned_flat

TTypes< T >::UnalignedConstFlat unaligned_flat() const 

non allineato_a forma

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

non allineato_a forma

l10n-segnaposto89

vec

l10n-segnaposto90

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 un Eigen::Tensore dimensionato automaticamente in base alle dimensioni del tensore. Il controllo di implementazione ha esito negativo se il tipo o le dimensioni non corrispondono.

Esempio:

l10n-segnaposto91

l10n-segnaposto92

Versioni const di tutti i metodi sopra.

~Tensore

l10n-segnaposto93