Tensorflow :: Tensor
#include <tensor.h>
Repräsentiert ein n-dimensionales Array von Werten.
Zusammenfassung
Konstruktoren und Destruktoren | |
---|---|
Tensor () Erstellt einen 1-dimensionalen 0-Element-Float-Tensor. | |
Tensor (DataType type, const TensorShape & shape) | |
Tensor (Allocator *a, DataType type, const TensorShape & shape) Erstellt ein Tensor mit dem type und shape , unter Verwendung der Zuordner a die darunter liegende Puffer zuzuweisen. | |
Tensor (Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr) Erstellt ein Tensor mit dem type und shape , unter Verwendung der Zuordner a und die angegebene „allocation_attr“ die darunter liegende Puffer zuzuweisen. | |
Tensor (DataType type, const TensorShape & shape, TensorBuffer *buf) Erstellt einen Tensor mit dem Eingabedatentyp, der Form und dem Puffer. | |
Tensor (DataType type) Erstellt einen leeren Tensor des angegebenen Datentyps. | |
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) Konstruktor kopieren. | |
Tensor ( Tensor && other) Konstruktor verschieben. | |
~Tensor () |
Öffentliche Funktionen | |
---|---|
AllocatedBytes () const | size_t |
AsProtoField (TensorProto *proto) const | void Füllt proto mit *this dem Inhalt *this Tensors aus. |
AsProtoTensorContent (TensorProto *proto) const | void |
BitcastFrom (const Tensor & other, DataType dtype, const TensorShape & shape) | Kopieren Sie den anderen Tensor in diesen Tensor, formen Sie ihn neu und interpretieren Sie den Datentyp des Puffers neu. |
CopyFrom (const Tensor & other, const TensorShape & shape) TF_MUST_USE_RESULT | bool Kopieren Sie den anderen Tensor in diesen Tensor und formen Sie ihn neu. |
DebugString (int num_values) const | string Eine für Menschen lesbare Zusammenfassung des zum Debuggen geeigneten Tensors. |
DebugString () const | string |
DeviceSafeDebugString () const | string |
FillDescription (TensorDescription *description) const | void Füllen Sie das TensorDescription Proto mit Metadaten über den Tensor aus, die für die Überwachung und das Debuggen nützlich sind. |
FromProto (const TensorProto & other) TF_MUST_USE_RESULT | bool Analysiere other und konstruiere den Tensor. |
FromProto (Allocator *a, const TensorProto & other) TF_MUST_USE_RESULT | bool |
IsAligned () const | bool Gibt true zurück, wenn dieser Tensor ausgerichtet ist. |
IsInitialized () const | bool Wurde dieser Tensor bei Bedarf initialisiert? |
IsSameSize (const Tensor & b) const | bool |
NumElements () const | int64 Komfort-Accessor für die Tensorform. |
SharesBufferWith (const Tensor & b) const | bool |
Slice (int64 dim0_start, int64 dim0_limit) const | Schneiden Sie diesen Tensor entlang der 1. Dimension. |
SubSlice (int64 index) const | Wählen Sie aus diesem Tensor eine Unterscheibe entlang der 1. Dimension aus. |
SummarizeValue (int64 max_entries, bool print_v2) const | string max_entries die ersten max_entries Werte in *this in eine Zeichenfolge. |
TotalBytes () const | size_t Gibt die geschätzte Speichernutzung dieses Tensors zurück. |
UnsafeCopyFromInternal (const Tensor & other, DataType dtype, const TensorShape & shape) | void Wie BitcastFrom, aber CHECK schlägt fehl, wenn keine Voraussetzungen erfüllt sind. |
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) | TTypes< T, NDIMS >:: Tensor new_sizes Sie die Tensordaten an einen Eigen::Tensor mit der in new_sizes angegebenen neuen Form new_sizes und new_sizes sie in einen neuen dtype T . |
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) const | TTypes< T, NDIMS >::ConstTensor new_sizes Sie die Tensordaten an einen Eigen::Tensor mit der in new_sizes angegebenen neuen Form new_sizes und new_sizes sie in einen neuen dtype T . |
bit_casted_tensor () | TTypes< T, NDIMS >:: Tensor Geben Sie die Tensordaten an einen Eigen::Tensor mit derselben Größe, aber einer bitweisen Umwandlung in den angegebenen dtype T . |
bit_casted_tensor () const | TTypes< T, NDIMS >::ConstTensor Geben Sie die Tensordaten an einen Eigen::Tensor mit derselben Größe, aber einer bitweisen Umwandlung in den angegebenen dtype T . |
dim_size (int d) const | int64 Komfort-Accessor für die Tensorform. |
dims () const | int Komfort-Accessor für die Tensorform. |
dtype () const | DataType Gibt den Datentyp zurück. |
flat () | TTypes< T >::Flat Geben Sie die Tensordaten als Eigen::Tensor des Datentyps und einer angegebenen Form zurück. |
flat () const | TTypes< T >::ConstFlat |
flat_inner_dims () | TTypes< T, NDIMS >:: Tensor Gibt die Daten als Eigen :: Tensor mit NDIMS-Dimensionen zurück und reduziert alle Tensor- Dimensionen bis auf das letzte NDIMS-1 in die erste Dimension des Ergebnisses. |
flat_inner_dims () const | TTypes< T, NDIMS >::ConstTensor |
flat_inner_outer_dims (int64 begin) | TTypes< T, NDIMS >:: Tensor Gibt die Daten als Eigen :: Tensor mit NDIMS-Dimensionen zurück, wobei die ersten 'begin'- Tensordimensionen in die erste Dimension des Ergebnisses und die Tensordimensionen der letzten dims () -' begin '- NDIMS in die letzte Dimension der Ergebnis. |
flat_inner_outer_dims (int64 begin) const | TTypes< T, NDIMS >::ConstTensor |
flat_outer_dims () | TTypes< T, NDIMS >:: Tensor Gibt die Daten als Eigen :: Tensor mit NDIMS-Dimensionen zurück und reduziert alle Tensor- Dimensionen außer dem ersten NDIMS-1 in die letzte Dimension des Ergebnisses. |
flat_outer_dims () const | TTypes< T, NDIMS >::ConstTensor |
matrix () | TTypes< T >::Matrix |
matrix () const | TTypes< T >::ConstMatrix |
operator= (const Tensor & other) | Tensor & Operator zuweisen. Dieser Tensor teilt den zugrunde liegenden Speicher des anderen. |
operator= ( Tensor && other) | Tensor & Operator bewegen. Weitere Informationen finden Sie unter Verschieben des Konstruktors. |
reinterpret_last_dimension () | TTypes< T, NDIMS >:: Tensor Geben Sie die Tensordaten an einen Eigen::Tensor wobei die letzten Dimensionselemente in einzelne Elemente eines größeren Typs konvertiert werden. |
reinterpret_last_dimension () const | TTypes< T, NDIMS >::ConstTensor Geben Sie die Tensordaten an einen Eigen::Tensor wobei die letzten Dimensionselemente in einzelne Elemente eines größeren Typs konvertiert werden. |
scalar () | TTypes< T >::Scalar |
scalar () const | TTypes< T >::ConstScalar |
shape () const | const TensorShape & Gibt die Form des Tensors zurück. |
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 Gibt ein StringPiece das den Puffer des aktuellen Tensors StringPiece . |
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 Bringen Sie die Tensordaten als Eigen::Tensor mit der Art und Größen dieser Tensor . |
vec () const | TTypes< T >::ConstVec Const-Versionen aller oben genannten Methoden. |
Öffentliche Funktionen
AllocatedBytes
size_t AllocatedBytes() const
AsProtoField
void AsProtoField( TensorProto *proto ) const
Füllt proto
mit *this
dem Inhalt *this
Tensors aus.
AsProtoField()
füllt das wiederholte Feld für proto.dtype()
, während AsProtoTensorContent()
den Inhalt in proto.tensor_content()
in kompakter Form codiert.
AsProtoTensorContent
void AsProtoTensorContent( TensorProto *proto ) const
BitcastFrom
Status BitcastFrom( const Tensor & other, DataType dtype, const TensorShape & shape )
Kopieren Sie den anderen Tensor in diesen Tensor, formen Sie ihn neu und interpretieren Sie den Datentyp des Puffers neu.
Wenn Status :: OK () zurückgegeben wird, teilen sich die beiden Tensoren jetzt denselben zugrunde liegenden Speicher.
Dieser Aufruf erfordert, dass der other
Tensor und der gegebene Typ und die gegebene Form "kompatibel" sind (dh sie belegen die gleiche Anzahl von Bytes).
Speziell:
shape.num_elements () * DataTypeSize (Typ)
muss gleich sein
other.num_elements () * DataTypeSize (other.dtype ())
Darüber hinaus erfordert diese Funktion:
- DataTypeSize (other.dtype ())! = 0
- DataTypeSize (Typ)! = 0
Wenn eine der Anforderungen nicht erfüllt ist, wird error :: InvalidArgument zurückgegeben.
Kopie von
bool CopyFrom( const Tensor & other, const TensorShape & shape ) TF_MUST_USE_RESULT
Kopieren Sie den anderen Tensor in diesen Tensor und formen Sie ihn neu.
Dieser Tensor teilt den zugrunde liegenden Speicher des anderen. Gibt true
wenn other.shape()
die gleiche Anzahl von Elementen der angegebenen shape
.
DebugString
string DebugString( int num_values ) const
Eine für Menschen lesbare Zusammenfassung des zum Debuggen geeigneten Tensors.
DebugString
string DebugString() const
DeviceSafeDebugString
string DeviceSafeDebugString() const
FillDescription
void FillDescription( TensorDescription *description ) const
Füllen Sie das TensorDescription
Proto mit Metadaten über den Tensor aus, die für die Überwachung und das Debuggen nützlich sind.
FromProto
bool FromProto( const TensorProto & other ) TF_MUST_USE_RESULT
Analysiere other
und konstruiere den Tensor.
Gibt true
wenn die Analyse erfolgreich ist. Wenn die Analyse fehlschlägt, bleibt der Status von *this
unverändert.
FromProto
bool FromProto( Allocator *a, const TensorProto & other ) TF_MUST_USE_RESULT
IsAligned
bool IsAligned() const
Gibt true zurück, wenn dieser Tensor ausgerichtet ist.
IsInitialized
bool IsInitialized() const
Wurde dieser Tensor bei Bedarf initialisiert?
Nullelement-Tensoren gelten immer als initialisiert, auch wenn sie noch nie zugewiesen wurden und kein Speicher zugewiesen ist.
IsSameSize
bool IsSameSize( const Tensor & b ) const
NumElements
int64 NumElements() const
Komfort-Accessor für die Tensorform.
SharesBufferWith
bool SharesBufferWith( const Tensor & b ) const
Scheibe
Tensor Slice( int64 dim0_start, int64 dim0_limit ) const
Schneiden Sie diesen Tensor entlang der 1. Dimension.
Das heißt, der zurückgegebene Tensor erfüllt zurückgegebene [i, ...] == this [dim0_start + i, ...]. Der zurückgegebene Tensor teilt den zugrunde liegenden Tensorpuffer mit diesem Tensor.
HINWEIS: Der zurückgegebene Tensor erfüllt je nach Form möglicherweise nicht die gleichen Ausrichtungsanforderungen wie dieser Tensor. Der Aufrufer muss die Ausrichtung des zurückgegebenen Tensors überprüfen, bevor er bestimmte Methoden aufruft, für die eine Ausrichtung erforderlich ist (z. B. flat()
, tensor()
).
HINWEIS: Wenn diese Methode mit einem N-dimensionalen Tensor gespeist wird, gibt sie einen Tensor auch mit N Dimensionen zurück. Wenn Sie einen Subtensor auswählen möchten, lesen Sie SubSlice.
ANFORDERUNGEN: dims()
> = 1 ANFORDERUNGEN: 0 <= dim0_start <= dim0_limit <= dim_size(0)
SubSlice
Tensor SubSlice( int64 index ) const
Wählen Sie aus diesem Tensor eine Unterscheibe entlang der 1. Dimension aus.
Wenn diese Methode mit einem N-dimensionalen Tensor gespeist wird, wird ein Tensor mit N-1-Dimensionen zurückgegeben, wobei der zurückgegebene Tensor eine Unterschicht des Eingangstensors entlang der ersten Dimension ist. Die N-1-Abmessungen des zurückgegebenen Tensors sind die letzten N-1-Abmessungen des Eingangstensors.
HINWEIS: Der zurückgegebene Tensor erfüllt je nach Form möglicherweise nicht die gleichen Ausrichtungsanforderungen wie dieser Tensor. Der Aufrufer muss die Ausrichtung des zurückgegebenen Tensors überprüfen, bevor er bestimmte Methoden aufruft, für die eine Ausrichtung erforderlich ist (z. B. flat()
, tensor()
).
ERFORDERLICH: dims()
> = 1 ERFORDERLICH: 0 <= dim0_start < dim_size(0)
SummarizeValue
string SummarizeValue( int64 max_entries, bool print_v2 ) const
max_entries
die ersten max_entries
Werte in *this
in eine Zeichenfolge.
Tensor
Tensor()
Erstellt einen 1-dimensionalen 0-Element-Float-Tensor.
Der zurückgegebene Tensor ist kein Skalar (Form {}), sondern ein leerer eindimensionaler Tensor (Form {0}, NumElements () == 0). Da es keine Elemente enthält, muss ihm kein Wert zugewiesen werden und es wird standardmäßig initialisiert ( IsInitialized () ist true). Wenn dies unerwünscht ist, sollten Sie einen Ein-Element-Skalar erstellen, für den eine Initialisierung erforderlich ist:
Tensor(DT_FLOAT, TensorShape({}))
Tensor
Tensor( DataType type, const TensorShape & shape )
Erstellt einen Tensor des angegebenen type
und der angegebenen shape
.
Bei LogMemory :: IsEnabled () wird die Zuordnung als von einem unbekannten Kernel und Schritt stammend protokolliert. Das Aufrufen des Tensorkonstruktors direkt aus einem Op heraus ist veraltet: Verwenden Sie die Methoden OpKernelConstruction / OpKernelContext allocate_ *, um einen neuen Tensor zuzuweisen, der den Kernel und den Schritt aufzeichnet.
Der zugrunde liegende Puffer wird mit einem CPUAllocator
.
Tensor
Tensor( Allocator *a, DataType type, const TensorShape & shape )
Erstellt ein Tensor mit dem type
und shape
, unter Verwendung der Zuordner a
die darunter liegende Puffer zuzuweisen.
Bei LogMemory :: IsEnabled () wird die Zuordnung als von einem unbekannten Kernel und Schritt stammend protokolliert. Das Aufrufen des Tensorkonstruktors direkt aus einem Op heraus ist veraltet: Verwenden Sie die Methoden OpKernelConstruction / OpKernelContext allocate_ *, um einen neuen Tensor zuzuweisen, der den Kernel und den Schritt aufzeichnet.
a
muss die Lebensdauer dieser outlive Tensor .
Tensor
Tensor( Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr )
Erstellt ein Tensor mit dem type
und shape
, unter Verwendung der Zuordner a
und die angegebene „allocation_attr“ die darunter liegende Puffer zuzuweisen.
Wenn der Kernel und der Schritt bekannt sind, sollte Allocation_attr.allocation_will_be_logged auf true gesetzt und LogMemory :: RecordTensorAllocation aufgerufen werden, nachdem der Tensor erstellt wurde. Das Aufrufen des Tensorkonstruktors direkt aus einem Op heraus ist veraltet: Verwenden Sie die Methoden OpKernelConstruction / OpKernelContext allocate_ *, um einen neuen Tensor zuzuweisen, der den Kernel und den Schritt aufzeichnet.
a
muss die Lebensdauer dieser outlive Tensor .
Tensor
Tensor( DataType type, const TensorShape & shape, TensorBuffer *buf )
Erstellt einen Tensor mit dem Eingabedatentyp, der Form und dem Puffer.
Erwirbt einen Ref auf Buf, der zu diesem Tensor gehört .
Tensor
Tensor( DataType type )
Erstellt einen leeren Tensor des angegebenen Datentyps.
Gibt wie Tensor () einen eindimensionalen Tensor mit 0 Elementen zurück, wobei IsInitialized () True zurückgibt . Weitere Informationen finden Sie in der Dokumentation zu Tensor () .
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( Tensor && other )
Konstruktor verschieben.
Nach diesem Anruf
TotalBytes
size_t TotalBytes() const
Gibt die geschätzte Speichernutzung dieses Tensors zurück.
UnsafeCopyFromInternal
void UnsafeCopyFromInternal( const Tensor & other, DataType dtype, const TensorShape & shape )
Wie BitcastFrom, aber CHECK schlägt fehl, wenn keine Voraussetzungen erfüllt sind.
Veraltet. Verwenden Sie stattdessen BitcastFrom und überprüfen Sie den zurückgegebenen Status .
bit_casted_shaped
TTypes< T, NDIMS >::Tensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes )
new_sizes
Sie die Tensordaten an einen Eigen::Tensor
mit der in new_sizes
angegebenen neuen Form new_sizes
und new_sizes
sie in einen neuen dtype T
.
Die Verwendung eines Bitcasts ist nützlich für Verschiebungs- und Kopiervorgänge. Der zulässige Bitcast ist der einzige Unterschied zu shape shaped()
.
bit_casted_shaped
TTypes< T, NDIMS >::ConstTensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes ) const
new_sizes
Sie die Tensordaten an einen Eigen::Tensor
mit der in new_sizes
angegebenen neuen Form new_sizes
und new_sizes
sie in einen neuen dtype T
.
Die Verwendung eines Bitcasts ist nützlich für Verschiebungs- und Kopiervorgänge. Der zulässige Bitcast ist der einzige Unterschied zu shape shaped()
.
bit_casted_tensor
TTypes< T, NDIMS >::Tensor bit_casted_tensor()
Geben Sie die Tensordaten an einen Eigen::Tensor
mit derselben Größe, aber einer bitweisen Umwandlung in den angegebenen dtype T
.
Die Verwendung eines Bitcasts ist nützlich für Verschiebungs- und Kopiervorgänge. HINWEIS: Dies entspricht tensor()
außer dass ein Bitcast zulässig ist.
bit_casted_tensor
TTypes< T, NDIMS >::ConstTensor bit_casted_tensor() const
Geben Sie die Tensordaten an einen Eigen::Tensor
mit derselben Größe, aber einer bitweisen Umwandlung in den angegebenen dtype T
.
Die Verwendung eines Bitcasts ist nützlich für Verschiebungs- und Kopiervorgänge. HINWEIS: Dies entspricht tensor()
außer dass ein Bitcast zulässig ist.
dim_size
int64 dim_size( int d ) const
Komfort-Accessor für die Tensorform.
dimmt
int dims() const
Komfort-Accessor für die Tensorform.
TensorShape
allen Form-Accessoren finden Sie in den Kommentaren zu den relevanten Methoden von TensorShape
in tensor_shape.h
.
dtype
DataType dtype() const
Gibt den Datentyp zurück.
eben
TTypes< T >::Flat flat()
Geben Sie die Tensordaten als Eigen::Tensor
des Datentyps und einer angegebenen Form zurück.
Mit diesen Methoden können Sie auf die Daten mit den Abmessungen und Größen Ihrer Wahl zugreifen. Sie müssen die Anzahl der Dimensionen des Tensors nicht kennen , um sie aufzurufen. Sie CHECK
jedoch, ob der Typ übereinstimmt und die angeforderten Dimensionen einen Eigen::Tensor
mit der gleichen Anzahl von Elementen wie der Tensor erstellen.
Beispiel:
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()
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 )
Gibt die Daten als Eigen :: Tensor mit NDIMS-Dimensionen zurück, wobei die ersten 'begin'- Tensordimensionen in die erste Dimension des Ergebnisses und die Tensordimensionen der letzten dims () -' begin '- NDIMS in die letzte Dimension der Ergebnis.
Wenn 'begin' <0 ist, dann ist | 'begin' | führende Abmessungen der Größe 1 werden hinzugefügt. Wenn 'begin' + NDIMS> dims (), werden 'begin' + NDIMS - dims () nachfolgende Abmessungen der Größe 1 hinzugefügt.
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()
Gibt die Daten als Eigen :: Tensor mit NDIMS-Dimensionen zurück und reduziert alle Tensor- Dimensionen außer dem ersten NDIMS-1 in die letzte Dimension des Ergebnisses.
Wenn NDIMS> dims () ist, werden nachfolgende Abmessungen der Größe 1 hinzugefügt, um den Ausgaberang NDIMS zu erhalten.
flat_outer_dims
TTypes< T, NDIMS >::ConstTensor flat_outer_dims() const
Matrix
TTypes< T >::Matrix matrix()
Matrix
TTypes< T >::ConstMatrix matrix() const
Operator =
Tensor & operator=( const Tensor & other )
Operator zuweisen. Dieser Tensor teilt den zugrunde liegenden Speicher des anderen.
Operator =
Tensor & operator=( Tensor && other )
Operator bewegen. Weitere Informationen finden Sie unter Verschieben des Konstruktors.
reinterpret_last_dimension
TTypes< T, NDIMS >::Tensor reinterpret_last_dimension()
Geben Sie die Tensordaten an einen Eigen::Tensor
wobei die Elemente der letzten Dimension in einzelne Elemente eines größeren Typs konvertiert werden.
Dies ist beispielsweise nützlich für Kernel, die NCHW_VECT_C int8-Tensoren als NCHW int32-Tensoren behandeln können. Die Größe von (T) sollte der Größe des ursprünglichen Elementtyps * num Elemente in der ursprünglichen letzten Dimension entsprechen. NDIMS sollte 1 weniger als die ursprüngliche Anzahl von Dimensionen sein.
reinterpret_last_dimension
TTypes< T, NDIMS >::ConstTensor reinterpret_last_dimension() const
Geben Sie die Tensordaten an einen Eigen::Tensor
wobei die letzten Dimensionselemente in einzelne Elemente eines größeren Typs konvertiert werden.
Dies ist beispielsweise nützlich für Kernel, die NCHW_VECT_C int8-Tensoren als NCHW int32-Tensoren behandeln können. Die Größe von (T) sollte der Größe des ursprünglichen Elementtyps * num Elemente in der ursprünglichen letzten Dimension entsprechen. NDIMS sollte 1 weniger als die ursprüngliche Anzahl von Dimensionen sein.
Skalar
TTypes< T >::Scalar scalar()
Skalar
TTypes< T >::ConstScalar scalar() const
gestalten
const TensorShape & shape() const
Gibt die Form des Tensors zurück.
geformt
TTypes< T, NDIMS >::Tensor shaped( gtl::ArraySlice< int64 > new_sizes )
geformt
TTypes< T, NDIMS >::ConstTensor shaped( gtl::ArraySlice< int64 > new_sizes ) const
Tensor
TTypes< T, NDIMS >::Tensor tensor()
Tensor
TTypes< T, NDIMS >::ConstTensor tensor() const
tensor_data
StringPiece tensor_data() const
Gibt ein StringPiece
das den Puffer des aktuellen Tensors StringPiece
.
Das zurückgegebene StringPiece
möglicherweise auf den Speicherort auf Geräten, die die CPU nicht direkt adressieren kann.
HINWEIS: Der zugrunde liegende Tensorpuffer wird erneut gezählt, sodass die Lebensdauer des vom StringPiece
mit der Lebensdauer des Puffers StringPiece
. Anrufer sollten sicherstellen, dass der Puffer nicht zerstört wird, solange das StringPiece
noch verwendet wird.
ERFORDERLICH: 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()
Geben Sie die Tensordaten als Eigen :: Tensor mit dem Typ und den Größen dieses Tensors zurück.
Verwenden Sie diese Methoden, wenn Sie den Datentyp und die Anzahl der Dimensionen des Tensors kennen und möchten, dass ein Eigen :: Tensor automatisch an die Tensorgrößen angepasst wird. Die Implementierungsprüfung schlägt fehl, wenn Typ oder Größe nicht übereinstimmen.
Beispiel:
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-Versionen aller oben genannten Methoden.
~ Tensor
~Tensor()