tensorflow :: Napinacz
#include <tensor.h>
Reprezentuje n-wymiarową tablicę wartości.
Podsumowanie
Konstruktorzy i niszczyciele | |
---|---|
Tensor () Tworzy 1-wymiarowy, 0-elementowy tensor typu float. | |
Tensor (DataType type, const TensorShape & shape) | |
Tensor (Allocator *a, DataType type, const TensorShape & shape) Tworzy tensor z type i shape wejściowym przy użyciu alokatora a do przydzielenia bazowego buforu. | |
Tensor (Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr) Tworzy tensor z type i shape danych wejściowych, używając alokatora a i określonego atrybutu alokacji w celu przydzielenia bazowego buforu. | |
Tensor (DataType type, const TensorShape & shape, TensorBuffer *buf) Tworzy tensor o wejściowym typie danych, kształcie i buforze. | |
Tensor (DataType type) Tworzy pusty Tensor podanego typu 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) Konstruktor ruchu. | |
~Tensor () |
Funkcje publiczne | |
---|---|
AllocatedBytes () const | size_t |
AsProtoField (TensorProto *proto) const | void Wypełnia proto *this zawartością *this tensora. |
AsProtoTensorContent (TensorProto *proto) const | void |
BitcastFrom (const Tensor & other, DataType dtype, const TensorShape & shape) | Status Skopiuj drugi tensor do tego tensora, przekształć go i ponownie zinterpretuj 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 | string Czytelne dla człowieka podsumowanie tensora odpowiednie do debugowania. |
DebugString () const | string |
DeviceSafeDebugString () const | string |
FillDescription (TensorDescription *description) const | void Wypełnij TensorDescription metadanymi dotyczącymi tensora, które są przydatne do monitorowania i debugowania. |
FromProto (const TensorProto & other) TF_MUST_USE_RESULT | bool Przeanalizuj other i utwórz tensor. |
FromProto (Allocator *a, const TensorProto & other) TF_MUST_USE_RESULT | bool |
IsAligned () const | bool Zwraca wartość true, jeśli ten tensor jest wyrównany. |
IsInitialized () const | bool Jeśli to konieczne, czy ten Tensor został zainicjowany? |
IsSameSize (const Tensor & b) const | bool |
NumElements () const | int64 Wygodny dodatek do kształtu tensora. |
RefCountIsOne () const | bool |
SharesBufferWith (const Tensor & b) const | bool |
Slice (int64 dim0_start, int64 dim0_limit) const | Pokrój ten tensor wzdłuż pierwszego wymiaru. |
SubSlice (int64 index) const | Wybierz podprasę z tego tensora wzdłuż pierwszego wymiaru. |
SummarizeValue (int64 max_entries, bool print_v2) const | string Renderuj pierwsze wartości max_entries w *this na łańcuch. |
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 rzuć na nowy dtype 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 rzuć na nowy dtype T |
bit_casted_tensor () | TTypes< T, NDIMS >:: Tensor Zwróć dane tensora do Eigen::Tensor o tym samym rozmiarze, ale rzutowane bitowo na określony dtype T |
bit_casted_tensor () const | TTypes< T, NDIMS >::ConstTensor Zwróć dane tensora do Eigen::Tensor o tym samym rozmiarze, ale rzutowane bitowo na określony dtype T |
data () const | void * |
dim_size (int d) const | int64 Wygodny dodatek do kształtu tensora. |
dims () const | int Wygodny dodatek do kształtu tensora. |
dtype () const | DataType Zwraca typ danych. |
flat () | TTypes< T >::Flat Zwróć dane tensora jako Eigen::Tensor typu danych i określonego kształtu. |
flat () const | TTypes< T >::ConstFlat |
flat_inner_dims () | TTypes< T, NDIMS >:: Tensor Zwraca dane jako Eigen :: Tensor z wymiarami NDIMS, zwijając wszystkie wymiary Tensor oprócz ostatniego NDIMS-1 do pierwszego wymiaru 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, zwijając wszystkie wymiary Tensor z wyjątkiem pierwszego NDIMS-1 do ostatniego wymiaru wyniku. |
flat_outer_dims () const | TTypes< T, NDIMS >::ConstTensor |
matrix () | TTypes< T >::Matrix |
matrix () const | TTypes< T >::ConstMatrix |
operator= (const Tensor & other) | Tensor & Przypisz operator. Ten tensor współużytkuje pamięć podstawową innych. |
operator= ( Tensor && other) | Tensor & Operator ruchu. Aby uzyskać szczegółowe informacje, zobacz konstruktor przenoszenia. |
reinterpret_last_dimension () | TTypes< T, NDIMS >:: Tensor Zwróć dane tensora do Eigen::Tensor z ostatnimi elementami wymiaru przekonwertowanymi na pojedyncze elementy większego typu. |
reinterpret_last_dimension () const | TTypes< T, NDIMS >::ConstTensor Zwróć dane tensora do Eigen::Tensor z ostatnimi elementami wymiaru przekonwertowanymi 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
AllocatedBytes
size_t AllocatedBytes() const
AsProtoField
void AsProtoField( TensorProto *proto ) const
Wypełnia proto
*this
zawartością *this
tensora.
AsProtoField()
wypełnia powtarzane pole dla proto.dtype()
, podczas gdy AsProtoTensorContent()
koduje zawartość w proto.tensor_content()
w zwartej formie.
AsProtoTensorContent
void AsProtoTensorContent( TensorProto *proto ) const
BitcastOd
Status BitcastFrom( const Tensor & other, DataType dtype, const TensorShape & shape )
Skopiuj drugi tensor do tego tensora, przekształć go i ponownie zinterpretuj typ danych bufora.
Jeśli zwracany jest Status :: OK (), dwa tensory współużytkują teraz ten sam podstawowy magazyn.
To wywołanie wymaga, aby other
tensor oraz dany typ i kształt były „zgodne” (tj. Zajmowały taką samą liczbę bajtów).
Konkretnie:
shape.num_elements () * DataTypeSize (typ)
musi się równać
other.num_elements () * DataTypeSize (other.dtype ())
Dodatkowo ta funkcja wymaga:
- DataTypeSize (other.dtype ())! = 0
- DataTypeSize (type)! = 0
Jeśli którykolwiek z wymagań nie jest spełniony, zwracany jest błąd 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ółużytkuje pamięć podstawową innych. Zwraca wartość true
jeśli other.shape()
ma taką samą liczbę elementów o podanym shape
.
DebugString
string DebugString( int num_values ) const
Czytelne dla człowieka podsumowanie tensora odpowiednie do debugowania.
DebugString
string DebugString() const
DeviceSafeDebugString
string DeviceSafeDebugString() const
FillDescription
void FillDescription( TensorDescription *description ) const
Wypełnij TensorDescription
metadanymi dotyczącymi tensora, które są przydatne do monitorowania i debugowania.
FromProto
bool FromProto( const TensorProto & other ) TF_MUST_USE_RESULT
Przeanalizuj other
i utwórz tensor.
Zwraca wartość true
jeśli analiza zakończyła się pomyślnie. Jeśli analiza nie powiedzie się, stan *this
pozostaje niezmieniony.
FromProto
bool FromProto( Allocator *a, const TensorProto & other ) TF_MUST_USE_RESULT
IsAligned
bool IsAligned() const
Zwraca wartość true, jeśli ten tensor jest wyrównany.
IsInitialized
bool IsInitialized() const
Jeśli to konieczne, czy ten Tensor został zainicjowany?
Tensory z elementami zerowymi są zawsze uważane za zainicjowane, nawet jeśli nigdy nie zostały przypisane i nie mają przydzielonej pamięci.
IsSameSize
bool IsSameSize( const Tensor & b ) const
NumElements
int64 NumElements() const
Wygodny dodatek 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
Pokrój ten tensor wzdłuż pierwszego wymiaru.
Tzn. Zwrócony tensor spełnia zwrócone [i, ...] == this [dim0_start + i, ...]. Zwrócony tensor współdzieli podstawowy bufor tensora z tym tensorem.
UWAGA: Zwrócony tensor może nie spełniać tych samych wymagań dotyczących wyrównania, co ten tensor, w zależności od kształtu. Obiekt wywołujący musi sprawdzić wyrównanie zwróconego tensora przed wywołaniem pewnych metod, które wymagają wyrównania (np. flat()
, tensor()
).
UWAGA: Przy zasilaniu tensorem o wymiarach N, ta metoda zwraca tensor również o wymiarach N. Jeśli chcesz wybrać sub tensor, zobacz SubSlice.
WYMAGANIA: dims()
> = 1 WYMAGANIA: 0 <= dim0_start <= dim0_limit <= dim_size(0)
SubSlice
Tensor SubSlice( int64 index ) const
Wybierz podprasę z tego tensora wzdłuż pierwszego wymiaru.
Po zasileniu tensorem N-wymiarowym metoda ta zwraca tensor o wymiarach N-1, gdzie tensor zwrócony jest podskrawkiem tensora wejściowego wzdłuż pierwszego wymiaru. Wymiary N-1 zwracanego tensora są ostatnimi wymiarami N-1 tensora wejściowego.
UWAGA: Zwrócony tensor może nie spełniać tych samych wymagań dotyczących wyrównania, co ten tensor, w zależności od kształtu. Obiekt wywołujący musi sprawdzić wyrównanie zwróconego tensora przed wywołaniem pewnych metod, które wymagają wyrównania (np. flat()
, tensor()
).
WYMAGANIA: dims()
> = 1 WYMAGANIA: 0 <= index < dim_size(0)
SummarizeValue
string SummarizeValue( int64 max_entries, bool print_v2 ) const
Renderuj pierwsze wartości max_entries
w *this
na łańcuch.
Napinacz
Tensor()
Tworzy 1-wymiarowy, 0-elementowy tensor typu float.
Zwrócony Tensor nie jest skalarem (kształtem {}), lecz pustym jednowymiarowym Tensorem (kształt {0}, NumElements () == 0). Ponieważ nie ma żadnych elementów, nie musi mieć przypisanej wartości i jest inicjowany domyślnie ( IsInitialized () ma wartość true). Jeśli jest to niepożądane, rozważ utworzenie jednoelementowego skalara, który wymaga inicjalizacji:
Tensor(DT_FLOAT, TensorShape({}))
Tensor
Tensor( DataType type, const TensorShape & shape )
Tworzy tensor danego type
i shape
.
Jeśli LogMemory :: IsEnabled () alokacja jest rejestrowana jako pochodząca z nieznanego jądra i kroku. Wywoływanie konstruktora Tensor bezpośrednio z poziomu Op jest przestarzałe: użyj metod OpKernelConstruction / OpKernelContext assignate_ *, aby przydzielić nowy tensor, który rejestruje jądro i krok.
Bufor bazowy jest przydzielany przy użyciu CPUAllocator
.
Napinacz
Tensor( Allocator *a, DataType type, const TensorShape & shape )
Tworzy tensor z type
i shape
wejściowym przy użyciu alokatora a
do przydzielenia bazowego buforu.
Jeśli LogMemory :: IsEnabled () alokacja jest rejestrowana jako pochodząca z nieznanego jądra i kroku. Wywoływanie konstruktora Tensor bezpośrednio z poziomu Oper jest przestarzałe: użyj metod OpKernelConstruction / OpKernelContextocation_ *, aby przydzielić nowy tensor, który rejestruje jądro i krok.
musi przeżyć żywotność tego Tensor .
Napinacz
Tensor( Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr )
Tworzy tensor z type
i shape
danych wejściowych, używając alokatora a
i określonego atrybutu alokacji w celu przydzielenia bazowego buforu.
Jeśli jądro i krok są znane, alokacja_attr.allocation_will_be_logged powinna mieć wartość true, a LogMemory :: RecordTensorAllocation należy wywołać po skonstruowaniu tensora. Wywoływanie konstruktora Tensor bezpośrednio z poziomu Op jest przestarzałe: użyj metod OpKernelConstruction / OpKernelContext assignate_ *, aby przydzielić nowy tensor, który rejestruje jądro i krok.
musi przeżyć żywotność tego Tensor .
Napinacz
Tensor( DataType type, const TensorShape & shape, TensorBuffer *buf )
Tworzy tensor o wejściowym typie danych, kształcie i buforze.
Uzyskuje ref na bufie należącym do tego Tensora .
Napinacz
Tensor( DataType type )
Tworzy pusty Tensor podanego typu danych.
Podobnie jak Tensor () , zwraca 1-wymiarowy, 0-elementowy Tensor z IsInitialized () zwracającym True. Szczegółowe informacje zawiera dokumentacja 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 )
Konstruktor ruchu.
Po tej rozmowie
TotalBytes
size_t TotalBytes() const
Zwraca szacowane użycie pamięci przez ten tensor.
UnsafeCopyFromInternal
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 stan.
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 rzuć na nowy dtype T
Używanie bitcastu jest przydatne przy operacjach przenoszenia i kopiowania. Dozwolony bitcast jest jedyną różnicą w stosunku do shape 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 rzuć na nowy dtype T
Używanie bitcastu jest przydatne przy operacjach przenoszenia i kopiowania. Dozwolony bitcast jest jedyną różnicą w stosunku do shape shaped()
.
bit_casted_tensor
TTypes< T, NDIMS >::Tensor bit_casted_tensor()
Zwróć dane tensora do Eigen::Tensor
o tym samym rozmiarze, ale rzutowane bitowo na określony dtype T
Używanie bitcastu jest przydatne przy operacjach przenoszenia i kopiowania. UWAGA: to jest to samo co tensor()
z wyjątkiem dozwolonego bitcast.
bit_casted_tensor
TTypes< T, NDIMS >::ConstTensor bit_casted_tensor() const
Zwróć dane tensora do Eigen::Tensor
o tym samym rozmiarze, ale rzutowane bitowo na określony dtype T
Używanie bitcastu jest przydatne przy operacjach przenoszenia i kopiowania. UWAGA: to jest to samo co tensor()
z wyjątkiem dozwolonego bitcast.
dane
void * data() const
dim_size
int64 dim_size( int d ) const
Wygodny dodatek do kształtu tensora.
ściemnia się
int dims() const
Wygodny dodatek do kształtu tensora.
W przypadku wszystkich metod TensorShape
kształtów zobacz komentarze dotyczące odpowiednich metod TensorShape
w tensor_shape.h
.
dtype
DataType dtype() const
Zwraca typ danych.
mieszkanie
TTypes< T >::Flat flat()
Zwróć dane tensora jako Eigen::Tensor
typu danych i określonego kształtu.
Te metody umożliwiają dostęp do danych o wybranych wymiarach i rozmiarach. Nie musisz znać liczby wymiarów Tensora, aby je wywołać. Jednak CHECK
, czy typ pasuje i żądane wymiary tworzą Eigen::Tensor
z taką samą liczbą 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 ({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 )
Zwraca dane jako Eigen :: Tensor z wymiarami NDIMS, zwijając pierwszy wymiar tensora „begin” do pierwszego wymiaru wyniku oraz wymiary tensora ostatniego dims () - „begin” - NDIMS do ostatniego wymiaru elementu wynik.
Jeśli „początek” <0, to | „początek” | zostaną dodane wiodące wymiary rozmiaru 1. Jeśli 'begin' + NDIMS> dims () to 'begin' + NDIMS - dims () zostaną dodane końcowe wymiary rozmiaru 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()
flat_outer_dims
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 )
Przypisz operator. Ten tensor współużytkuje pamięć podstawową innych.
operator =
Tensor & operator=( Tensor && other )
Operator ruchu. Aby uzyskać szczegółowe informacje, zobacz konstruktor przenoszenia.
reinterpret_last_dimension
TTypes< T, NDIMS >::Tensor reinterpret_last_dimension()
Zwróć dane tensora do Eigen::Tensor
z ostatnimi elementami wymiaru przekonwertowanymi na pojedyncze elementy większego typu.
Na przykład jest to przydatne w przypadku jąder, które mogą traktować tensory NCHW_VECT_C int8 jako tensory NCHW int32. Rozmiar sizeof (T) powinien być równy rozmiarowi oryginalnego typu elementu * liczba elementów w oryginalnym ostatnim wymiarze. NDIMS powinien być o 1 mniejszy niż oryginalna liczba wymiarów.
reinterpret_last_dimension
TTypes< T, NDIMS >::ConstTensor reinterpret_last_dimension() const
Zwróć dane tensora do Eigen::Tensor
z ostatnimi elementami wymiaru przekonwertowanymi 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. Rozmiar sizeof (T) powinien być równy rozmiarowi oryginalnego typu elementu * liczba elementów w oryginalnym ostatnim wymiarze. NDIMS powinien być o 1 mniejszy niż oryginalna liczba wymiarów.
skalarny
TTypes< T >::Scalar scalar()
skalarny
TTypes< T >::ConstScalar scalar() const
kształt
const TensorShape & shape() const
Zwraca kształt tensora.
w kształcie
TTypes< T, NDIMS >::Tensor shaped( gtl::ArraySlice< int64 > new_sizes )
w kształcie
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 StringPiece
może wskazywać na lokalizację pamięci na urządzeniach, których procesor nie może bezpośrednio adresować.
UWAGA: Bazowy bufor tensora jest zliczany ponownie, więc czas życia zawartości zamapowanej przez StringPiece
zgodny z okresem istnienia buforu; osoby wywołujące powinny zorganizować, aby upewnić się, że bufor nie zostanie zniszczony, gdy StringPiece
jest nadal używany.
WYMAGANIA: 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()
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 był automatycznie dopasowywany 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 (); // 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
Wersje const wszystkich powyższych metod.
~ Tensor
~Tensor()