Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Tensorflow :: Tensor

#include <tensor.h>

Repräsentiert ein n-dimensionales Array von Werten.

Zusammenfassung

Konstruktoren und Destruktoren

Tensor ()
Erstellt einen eindimensionalen Float-Tensor mit 0 Elementen.
Tensor (DataType type, const TensorShape & shape)
Erstellt einen Tensor des angegebenen type und der angegebenen 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 zum Tensor aus, die für die Überwachung und das Debuggen hilfreich 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
Convenience Accessor für die Tensorform.
dims () const
int
Convenience 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 außer dem letzten 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 Elemente der letzten Dimension 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 Elemente der letzten Dimension in einzelne Elemente eines größeren Typs konvertiert werden.
scalar ()
TTypes< T >::Scalar
TensorMap Sie die Tensor- Daten als TensorMap mit fester Größe 1 zurück: TensorMap > TensorMap > .
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 zum Tensor aus, die für die Überwachung und das Debuggen hilfreich 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

Ist ausgerichtet

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 

Convenience 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ückgegeben [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 mit einem N-dimensionalen Tensor gespeist wird, gibt diese Methode 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, gibt sie einen Tensor mit N-1-Dimensionen zurück, 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 eindimensionalen Float-Tensor mit 0 Elementen.

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(
  const Tensor & other
)

Konstruktor kopieren.

Tensor

 Tensor(
  Tensor && other
)

Konstruktor verschieben.

Nach diesem Anruf ist sicher zerstörbar und kann zugewiesen werden, aber andere Aufrufe (z. B. Formmanipulation) sind ungültig.

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 

Convenience 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()

Gibt die Daten als Eigen :: Tensor mit NDIMS-Dimensionen zurück und reduziert alle Tensor- Dimensionen außer dem letzten NDIMS-1 in die erste Dimension des Ergebnisses.

Wenn NDIMS> dims () ist, werden führende Dimensionen der Größe 1 hinzugefügt, um den Ausgaberang NDIMS zu erhalten.

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

Skalar

TTypes< T >::Scalar scalar()

TensorMap Sie die Tensor- Daten als TensorMap mit fester Größe 1 zurück: TensorMap > TensorMap > .

Durch die Verwendung von scalar() kann der Compiler Optimierungen durchführen, da die Größe des Tensors zur Kompilierungszeit bekannt ist.

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.

ANMERKUNG: 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()