tensorflow:: Tensor
#include <tensor.h>Reprezentuje n-wymiarową tablicę wartości.
Streszczenie
Konstruktory i destruktory | |
|---|---|
Tensor () Tworzy 1-wymiarowy, 0-elementowy tensor float. | |
Tensor (DataType type, const TensorShape & shape) | |
Tensor (Allocator *a, DataType type, const TensorShape & shape) Tworzy tensor o type wejściowym i shape , używając alokatora a do przydzielenia bufora bazowego. | |
Tensor (Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr) Tworzy tensor o type wejściowym i shape , używając alokatora a i określonego parametru „allocation_attr” do przydzielenia bufora bazowego. | |
Tensor (DataType type, const TensorShape & shape, TensorBuffer *buf) Tworzy tensor z typem danych wejściowych, kształtem i buforem. | |
Tensor (DataType type) Tworzy pusty Tensor o podanym typie danych. | |
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 kopiujący. | |
Tensor ( Tensor && other) Przenieś konstruktora. | |
Tensor (T *t) | |
~Tensor () |
Funkcje publiczne | |
|---|---|
AllocatedBytes () const | size_t |
AsProtoField (TensorProto *proto) const | void Wypełnia proto zawartością *this tensora. |
AsProtoTensorContent (TensorProto *proto) const | void |
BitcastFrom (const Tensor & other, DataType dtype, const TensorShape & shape) | Status Skopiuj inny tensor do tego tensora, zmień jego kształt i zinterpretuj ponownie typ danych bufora. |
CopyFrom (const Tensor & other, const TensorShape & shape) TF_MUST_USE_RESULT | bool Skopiuj drugi tensor do tego tensora i zmień jego kształt. |
DebugString (int num_values) const | std::string Podsumowanie tensora, zrozumiałe dla człowieka i przydatne do debugowania. |
DebugString () const | std::string |
DeviceSafeDebugString () const | std::string |
FillDescription (TensorDescription *description) const | void Wypełnij protokół TensorDescription metadanymi na temat tensora, które będą przydatne do monitorowania i debugowania. |
FromProto (const TensorProto & other) TF_MUST_USE_RESULT | bool Przeanalizuj other i skonstruuj tensor. |
FromProto (Allocator *a, const TensorProto & other) TF_MUST_USE_RESULT | bool |
IsAligned () const | bool Zwraca wartość true, jeśli tensor jest wyrównany. |
IsInitialized () const | bool Czy ten tensor został zainicjowany, jeśli to konieczne? |
IsSameSize (const Tensor & b) const | bool |
NumElements () const | int64 Wygodny akcesorium do kształtu tensora. |
RefCountIsOne () const | bool |
SharesBufferWith (const Tensor & b) const | bool |
Slice (int64 dim0_start, int64 dim0_limit) const | Przetnij ten tensor wzdłuż pierwszego wymiaru. |
SubSlice (int64 index) const | Wybierz podwycinek z tego tensora wzdłuż pierwszego wymiaru. |
SummarizeValue (int64 max_entries, bool print_v2) const | std::string Zamień pierwsze wartości max_entries w *this na ciąg znaków. |
TotalBytes () const | size_t Zwraca szacowane użycie pamięci przez ten tensor. |
UnsafeCopyFromInternal (const Tensor & other, DataType dtype, const TensorShape & shape) | void Podobnie jak BitcastFrom, ale CHECK kończy się niepowodzeniem, jeśli nie zostaną spełnione jakiekolwiek warunki wstępne. |
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) | TTypes< T, NDIMS >:: Tensor Zwróć dane tensora do Eigen::Tensor z nowym kształtem określonym w new_sizes i rzutuj na nowy typ danych T . |
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) const | TTypes< T, NDIMS >::ConstTensor Zwróć dane tensora do Eigen::Tensor z nowym kształtem określonym w new_sizes i rzutuj na nowy typ danych T . |
bit_casted_tensor () | TTypes< T, NDIMS >:: Tensor Zwróć dane tensora do Eigen::Tensor o tym samym rozmiarze, ale z rzutowaniem bitowym na określony typ danych T . |
bit_casted_tensor () const | TTypes< T, NDIMS >::ConstTensor Zwróć dane tensora do Eigen::Tensor o tym samym rozmiarze, ale z rzutowaniem bitowym na określony typ danych T . |
data () const | void * |
dim_size (int d) const | int64 Wygodny akcesorium do kształtu tensora. |
dims () const | int Wygodny akcesorium do kształtu tensora. |
dtype () const | DataType Zwraca typ danych. |
flat () | TTypes< T >::Flat Zwraca dane tensora jako Eigen::Tensor o typie danych i określonym kształcie. |
flat () const | TTypes< T >::ConstFlat |
flat_inner_dims () | TTypes< T, NDIMS >:: Tensor Zwraca dane jako Eigen::Tensor z wymiarami NDIMS, łącząc wszystkie wymiary tensora oprócz ostatniego NDIMS-1 w pierwszym wymiarze wyniku. |
flat_inner_dims () const | TTypes< T, NDIMS >::ConstTensor |
flat_inner_outer_dims (int64 begin) | TTypes< T, NDIMS >:: Tensor |
flat_inner_outer_dims (int64 begin) const | TTypes< T, NDIMS >::ConstTensor |
flat_outer_dims () | TTypes< T, NDIMS >:: Tensor Zwraca dane jako Eigen::Tensor z wymiarami NDIMS, łącząc wszystkie wymiary tensora oprócz pierwszego NDIMS-1 w ostatnim wymiarze wyniku. |
flat_outer_dims () const | TTypes< T, NDIMS >::ConstTensor |
matrix () | TTypes< T >::Matrix |
matrix () const | TTypes< T >::ConstMatrix |
operator= (const Tensor & other) | Tensor & Operator przypisania. Ten tensor współdzieli pamięć bazową z innymi tensorami. |
operator= ( Tensor && other) | Tensor & Operator Move. Szczegóły w opisie konstruktora Move. |
reinterpret_last_dimension () | TTypes< T, NDIMS >:: Tensor Zwróć dane tensora do Eigen::Tensor , a ostatnie elementy wymiaru przekonwertuj na pojedyncze elementy większego typu. |
reinterpret_last_dimension () const | TTypes< T, NDIMS >::ConstTensor Zwróć dane tensora do Eigen::Tensor , a ostatnie elementy wymiaru przekonwertuj na pojedyncze elementy większego typu. |
scalar () | TTypes< T >::Scalar |
scalar () const | TTypes< T >::ConstScalar |
shape () const | const TensorShape & Zwraca kształt tensora. |
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 Zwraca StringPiece mapujący bufor bieżącego tensora. |
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 Zwróć dane tensora jako Eigen::Tensor z typem i rozmiarami tego Tensor . |
vec () const | TTypes< T >::ConstVec Wersje const wszystkich powyższych metod. |
Funkcje publiczne
Przydzielone bajty
size_t AllocatedBytes() const
Jako pole protoprotetyczne
void AsProtoField( TensorProto *proto ) const
Wypełnia proto zawartością *this tensora.
AsProtoField() wypełnia powtarzane pole dla proto.dtype() , podczas gdy AsProtoTensorContent() koduje zawartość proto.tensor_content() w formie kompaktowej.
AsProtoTensorContent
void AsProtoTensorContent( TensorProto *proto ) const
BitcastFrom
Status BitcastFrom( const Tensor & other, DataType dtype, const TensorShape & shape )
Skopiuj inny tensor do tego tensora, zmień jego kształt i zinterpretuj ponownie typ danych bufora.
Jeżeli zwrócono Status::OK(), oba tensory współdzielą teraz tę samą pamięć bazową.
To wywołanie wymaga, aby other tensor oraz dany typ i kształt były „zgodne” (tj. zajmowały taką samą liczbę bajtów).
Swoiście:
kształt.liczba_elementów() * DataTypeSize(typ)
musi być równy
other.num_elements() * DataTypeSize(other.dtype())
Dodatkowo ta funkcja wymaga:
- Rozmiar typu danych (inny.typ()) != 0
- DataTypeSize(typ) != 0
Jeżeli którykolwiek z wymagań nie jest spełniony, zwracany jest kod errors::InvalidArgument.
Kopiuj z
bool CopyFrom( const Tensor & other, const TensorShape & shape ) TF_MUST_USE_RESULT
Skopiuj drugi tensor do tego tensora i zmień jego kształt.
Ten tensor współdzieli pamięć bazową z innymi. Zwraca true , jeśli other.shape() ma taką samą liczbę elementów danego shape .
Ciąg debugowania
std::string DebugString( int num_values ) const
Podsumowanie tensora, zrozumiałe dla człowieka i przydatne do debugowania.
Ciąg debugowania
std::string DebugString() const
DeviceSafeDebugString
std::string DeviceSafeDebugString() const
WypełnijOpis
void FillDescription( TensorDescription *description ) const
Wypełnij protokół TensorDescription metadanymi na temat tensora, które będą przydatne do monitorowania i debugowania.
FromProto
bool FromProto( const TensorProto & other ) TF_MUST_USE_RESULT
Przeanalizuj other i skonstruuj tensor.
Zwraca true , jeśli analiza składniowa się powiedzie. Jeśli analiza składniowa się nie powiedzie, stan *this pozostaje niezmieniony.
FromProto
bool FromProto( Allocator *a, const TensorProto & other ) TF_MUST_USE_RESULT
Jest wyrównany
bool IsAligned() const
Zwraca wartość true, jeśli tensor jest wyrównany.
IsInitialized
bool IsInitialized() const
Czy ten tensor został zainicjowany, jeśli to konieczne?
Tensory zerowego elementu są zawsze uważane za zainicjowane, nawet jeśli nigdy nie zostały przypisane i nie mają przydzielonej pamięci.
Ten sam rozmiar
bool IsSameSize( const Tensor & b ) const
Liczba elementów
int64 NumElements() const
Wygodny akcesorium do kształtu tensora.
RefCountIsOne
bool RefCountIsOne() const
SharesBufferWith
bool SharesBufferWith( const Tensor & b ) const
Plasterek
Tensor Slice( int64 dim0_start, int64 dim0_limit ) const
Przetnij ten tensor wzdłuż pierwszego wymiaru.
Oznacza to, że zwrócony tensor spełnia warunek returned[i, ...] == this[dim0_start + i, ...]. Zwrócony tensor współdzieli bufor tensora bazowego z tym tensorem.
UWAGA: Zwrócony tensor może nie spełniać tego samego wymogu wyrównania co ten tensor, w zależności od kształtu. Wywołujący musi sprawdzić wyrównanie zwróconego tensora przed wywołaniem niektórych metod, które mają wymóg wyrównania (np. flat() , tensor() ).
UWAGA: Po podaniu tensora N-wymiarowego ta metoda zwraca tensor również o N wymiarach. Jeśli chcesz wybrać podtensor, zobacz SubSlice.
WYMAGANIA: dims() >= 1 WYMAGANIA: 0 <= dim0_start <= dim0_limit <= dim_size(0)
Podwycinek
Tensor SubSlice( int64 index ) const
Wybierz podwycinek z tego tensora wzdłuż pierwszego wymiaru.
Po podaniu tensora N-wymiarowego, metoda ta zwraca tensor o N-1 wymiarach, gdzie zwrócony tensor jest podwycinkiem tensora wejściowego wzdłuż pierwszego wymiaru. N-1 wymiarów zwróconego tensora to ostatnie N-1 wymiarów tensora wejściowego.
UWAGA: Zwrócony tensor może nie spełniać tego samego wymogu wyrównania co ten tensor, w zależności od kształtu. Wywołujący musi sprawdzić wyrównanie zwróconego tensora przed wywołaniem niektórych metod, które mają wymóg wyrównania (np. flat() , tensor() ).
WYMAGA: dims() >= 1 WYMAGA: 0 <= index < dim_size(0)
Podsumuj wartość
std::string SummarizeValue( int64 max_entries, bool print_v2 ) const
Zamień pierwsze wartości max_entries w *this na ciąg znaków.
Napinacz
Tensor()
Tworzy 1-wymiarowy, 0-elementowy tensor float.
Zwrócony Tensor nie jest skalarem (kształt {}), lecz pustym, jednowymiarowym Tensorem (kształt {0}, NumElements() == 0). Ponieważ nie ma on żadnych elementów, nie trzeba mu przypisywać wartości i jest domyślnie inicjalizowany (wartość true w metodzie IsInitialized() ). Jeśli jest to niepożądane, rozważ utworzenie skalara jednoelementowego, który wymaga inicjalizacji:
Tensor(DT_FLOAT, TensorShape({}))
Tensor
Tensor( DataType type, const TensorShape & shape )
Tworzy tensor o podanym type i shape .
W przypadku LogMemory::IsEnabled() alokacja jest rejestrowana jako pochodząca z nieznanego jądra i kroku. Wywoływanie konstruktora Tensor bezpośrednio z poziomu operacji (Op) jest przestarzałe: należy użyć metod OpKernelConstruction/OpKernelContext allocate_*, aby przydzielić nowy tensor, który rejestruje jądro i krok.
Podstawowy bufor jest przydzielany za pomocą CPUAllocator .
Napinacz
Tensor( Allocator *a, DataType type, const TensorShape & shape )
Tworzy tensor o type wejściowym i shape , używając alokatora a do przydzielenia bufora bazowego.
W przypadku LogMemory::IsEnabled() alokacja jest rejestrowana jako pochodząca z nieznanego jądra i kroku. Wywoływanie konstruktora Tensor bezpośrednio z poziomu operacji (Op) jest przestarzałe: należy użyć metod OpKernelConstruction/OpKernelContext allocate_*, aby przydzielić nowy tensor, który rejestruje jądro i krok.
a przetrwać żywotność tego Tensora .
Napinacz
Tensor( Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr )
Tworzy tensor o type wejściowym i shape , używając alokatora a i określonego parametru „allocation_attr” do przydzielenia bufora bazowego.
Jeśli jądro i krok są znane, parametr allocation_attr.allocation_will_be_logged należy ustawić na true, a po skonstruowaniu tensora należy wywołać LogMemory::RecordTensorAllocation. Wywołanie konstruktora tensora bezpośrednio z poziomu operacji (Op) jest przestarzałe: należy użyć metod OpKernelConstruction/OpKernelContext allocate_*, aby przydzielić nowy tensor, który rejestruje jądro i krok.
a przetrwać żywotność tego Tensora .
Napinacz
Tensor( DataType type, const TensorShape & shape, TensorBuffer *buf )
Tworzy tensor z typem danych wejściowych, kształtem i buforem.
Nabywa ref na buf należący do tego tensora .
Napinacz
Tensor( DataType type )
Tworzy pusty Tensor o podanym typie danych.
Podobnie jak Tensor() , zwraca jednowymiarowy, 0-elementowy Tensor , a IsInitialized() zwraca wartość True. Szczegóły znajdziesz w dokumentacji Tensor() .
Napinacz
Tensor( float scalar_value )
Napinacz
Tensor( double scalar_value )
Napinacz
Tensor( int32 scalar_value )
Napinacz
Tensor( uint32 scalar_value )
Napinacz
Tensor( uint16 scalar_value )
Napinacz
Tensor( uint8 scalar_value )
Napinacz
Tensor( int16 scalar_value )
Napinacz
Tensor( int8 scalar_value )
Napinacz
Tensor( tstring scalar_value )
Napinacz
Tensor( complex64 scalar_value )
Napinacz
Tensor( complex128 scalar_value )
Napinacz
Tensor( int64 scalar_value )
Napinacz
Tensor( uint64 scalar_value )
Napinacz
Tensor( bool scalar_value )
Napinacz
Tensor( qint8 scalar_value )
Napinacz
Tensor( quint8 scalar_value )
Napinacz
Tensor( qint16 scalar_value )
Napinacz
Tensor( quint16 scalar_value )
Napinacz
Tensor( qint32 scalar_value )
Napinacz
Tensor( bfloat16 scalar_value )
Napinacz
Tensor( Eigen::half scalar_value )
Napinacz
Tensor( ResourceHandle scalar_value )
Napinacz
Tensor( const char *scalar_value )
Napinacz
Tensor( Tensor && other )
Przenieś konstruktora.
Po tym połączeniu,
Napinacz
Tensor( T *t )=delete
Całkowita liczba bajtów
size_t TotalBytes() const
Zwraca szacowane użycie pamięci przez ten tensor.
Niebezpieczne kopiowanie z wnętrza
void UnsafeCopyFromInternal( const Tensor & other, DataType dtype, const TensorShape & shape )
Podobnie jak BitcastFrom, ale CHECK kończy się niepowodzeniem, jeśli nie zostaną spełnione jakiekolwiek warunki wstępne.
Przestarzałe. Zamiast tego użyj BitcastFrom i sprawdź zwrócony status.
bit_casted_shaped
TTypes< T, NDIMS >::Tensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes )
Zwróć dane tensora do Eigen::Tensor z nowym kształtem określonym w new_sizes i rzutuj na nowy typ danych T .
Użycie bitcastu jest przydatne w przypadku operacji przenoszenia i kopiowania. Dozwolony bitcast to jedyna różnica w porównaniu z shaped() .
bit_casted_shaped
TTypes< T, NDIMS >::ConstTensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes ) const
Zwróć dane tensora do Eigen::Tensor z nowym kształtem określonym w new_sizes i rzutuj na nowy typ danych T .
Użycie bitcastu jest przydatne w przypadku operacji przenoszenia i kopiowania. Dozwolony bitcast to jedyna różnica w porównaniu z shaped() .
tensora bitowego
TTypes< T, NDIMS >::Tensor bit_casted_tensor()
Zwróć dane tensora do Eigen::Tensor o tym samym rozmiarze, ale z rzutowaniem bitowym na określony typ danych T .
Użycie bitcastu jest przydatne w przypadku operacji przenoszenia i kopiowania. UWAGA: działa to tak samo jak tensor() z tą różnicą, że bitcast jest dozwolony.
tensora bitowego
TTypes< T, NDIMS >::ConstTensor bit_casted_tensor() const
Zwróć dane tensora do Eigen::Tensor o tym samym rozmiarze, ale z rzutowaniem bitowym na określony typ danych T .
Użycie bitcastu jest przydatne w przypadku operacji przenoszenia i kopiowania. UWAGA: działa to tak samo jak tensor() z tą różnicą, że bitcast jest dozwolony.
dane
void * data() const
dim_size
int64 dim_size( int d ) const
Wygodny akcesorium do kształtu tensora.
przyciemnia
int dims() const
Wygodny akcesorium do kształtu tensora.
Aby zapoznać się ze wszystkimi akcesorami kształtu, zobacz komentarze dotyczące odpowiednich metod TensorShape w tensor_shape.h .
typ danych
DataType dtype() const
Zwraca typ danych.
płaski
TTypes< T >::Flat flat()
Zwraca dane tensora jako Eigen::Tensor o typie danych i określonym kształcie.
Metody te umożliwiają dostęp do danych o wybranych wymiarach i rozmiarach. Nie musisz znać liczby wymiarów tensora , aby je wywołać. CHECK one jednak, czy typ jest zgodny, a żądane wymiary tworzą Eigen::Tensor o takiej samej liczbie elementów jak tensor.
Przykład:
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<T, 2>({4, 15}); // CHECK fails, bad num elements: auto outer = my_ten.shaped<T, 2>({4, 8}); // 3D Eigen::Tensor 6 x 5 x 2: auto weird = my_ten.shaped<T, 3>({6, 5, 2}); // CHECK fails, type mismatch: auto bad = my_ten.flat ();
flat
TTypes< T >::ConstFlat flat() const
płaskie_wewnętrzne_wymiary
TTypes< T, NDIMS >::Tensor flat_inner_dims()
płaskie_wewnętrzne_wymiary
TTypes< T, NDIMS >::ConstTensor flat_inner_dims() const
płaskie_wewnętrzne_zewnętrzne_wymiary
TTypes< T, NDIMS >::Tensor flat_inner_outer_dims( int64 begin )
Zwraca dane jako Eigen::Tensor z wymiarami NDIMS, łącząc pierwsze wymiary tensora „begin” z pierwszym wymiarem wyniku oraz wymiary tensora ostatniego dims() - 'begin' - NDIMS z ostatnim wymiarem wyniku.
Jeśli „begin” < 0, to zostaną dodane wiodące wymiary |'begin'| o rozmiarze 1. Jeśli „begin” + NDIMS > dims() , to zostaną dodane końcowe wymiary „begin” + NDIMS - dims() o rozmiarze 1.
płaskie_wewnętrzne_zewnętrzne_wymiary
TTypes< T, NDIMS >::ConstTensor flat_inner_outer_dims( int64 begin ) const
płaskie_zewnętrzne_wymiary
TTypes< T, NDIMS >::Tensor flat_outer_dims()
płaskie_zewnętrzne_wymiary
TTypes< T, NDIMS >::ConstTensor flat_outer_dims() const
matryca
TTypes< T >::Matrix matrix()
matryca
TTypes< T >::ConstMatrix matrix() const
operator=
Tensor & operator=( const Tensor & other )
Operator przypisania. Ten tensor współdzieli pamięć bazową z innymi tensorami.
reinterpretuj_ostatni_wymiar
TTypes< T, NDIMS >::Tensor reinterpret_last_dimension()
Zwróć dane tensora do Eigen::Tensor , a ostatnie elementy wymiaru przekonwertuj na pojedyncze elementy większego typu.
Na przykład, jest to przydatne dla jąder, które mogą traktować tensory NCHW_VECT_C int8 jako tensory NCHW int32. Parametr sizeof(T) powinien być równy rozmiarowi oryginalnego typu elementu * liczba elementów w oryginalnym ostatnim wymiarze. Wartość NDIMS powinna być o 1 mniejsza od oryginalnej liczby wymiarów.
reinterpretuj_ostatni_wymiar
TTypes< T, NDIMS >::ConstTensor reinterpret_last_dimension() const
Zwróć dane tensora do Eigen::Tensor , a ostatnie elementy wymiaru przekonwertuj na pojedyncze elementy większego typu.
Na przykład, jest to przydatne dla jąder, które mogą traktować tensory NCHW_VECT_C int8 jako tensory NCHW int32. Parametr sizeof(T) powinien być równy rozmiarowi oryginalnego typu elementu * liczba elementów w oryginalnym ostatnim wymiarze. Wartość NDIMS powinna być o 1 mniejsza od oryginalnej liczby wymiarów.
skalarny
TTypes< T >::Scalar scalar()
skalarny
TTypes< T >::ConstScalar scalar() const
kształt
const TensorShape & shape() const
Zwraca kształt tensora.
ukształtowany
TTypes< T, NDIMS >::Tensor shaped( gtl::ArraySlice< int64 > new_sizes )
ukształtowany
TTypes< T, NDIMS >::ConstTensor shaped( gtl::ArraySlice< int64 > new_sizes ) const
napinacz
TTypes< T, NDIMS >::Tensor tensor()
napinacz
TTypes< T, NDIMS >::ConstTensor tensor() const
tensor_data
StringPiece tensor_data() const
Zwraca StringPiece mapujący bufor bieżącego tensora.
Zwrócony obiekt StringPiece może wskazywać na lokalizację w pamięci urządzenia, do której procesor nie może dotrzeć bezpośrednio.
UWAGA: Podstawowy bufor tensorowy jest przeliczany, więc czas życia zawartości mapowanej przez StringPiece jest zgodny z czasem życia bufora; wywołujący powinni zadbać o to, aby bufor nie został zniszczony, gdy StringPiece jest nadal używany.
WYMAGA: DataTypeCanUseMemcpy(dtype()) .
niewyrównany_płaski
TTypes< T >::UnalignedFlat unaligned_flat()
niewyrównany_płaski
TTypes< T >::UnalignedConstFlat unaligned_flat() const
nieustalony_kształt
TTypes< T, NDIMS >::UnalignedTensor unaligned_shaped( gtl::ArraySlice< int64 > new_sizes )
nieustalony_kształt
TTypes< T, NDIMS >::UnalignedConstTensor unaligned_shaped( gtl::ArraySlice< int64 > new_sizes ) const
wektor
TTypes< T >::Vec vec()
Zwróć dane tensora jako Eigen::Tensor z typem i rozmiarami tego tensora.
Użyj tych metod, gdy znasz typ danych i liczbę wymiarów tensora i chcesz, aby Eigen::Tensor automatycznie dopasował się do rozmiarów tensora. Sprawdzenie implementacji kończy się niepowodzeniem, jeśli typ lub rozmiary są niezgodne.
Przykład:
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<T, 2>(); // 2D Eigen::Tensor, 3 x 5. auto vec = my_mat.vec (); // CHECK fails as my_mat is 2D. auto vec = my_mat.tensor<T, 3>(); // CHECK fails as my_mat is 2D. auto mat = my_mat.matrix ();// CHECK fails as type mismatch.
vec
TTypes< T >::ConstVec vec() const
Wersje const wszystkich powyższych metod.
~Tensor
~Tensor()