Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

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)
Tworzy tensor danego type i 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
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.
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)
Przypisz operator. Ten tensor współużytkuje pamięć podstawową innych.
operator= ( Tensor && other)
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
Zwróć dane Tensor jako TensorMap o stałym rozmiarze 1: TensorMap > TensorMap > .
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(
  const Tensor & other
)

Konstruktor kopiujący.

Napinacz

 Tensor(
  Tensor && other
)

Konstruktor ruchu.

Po tej rozmowie można go bezpiecznie zniszczyć i można do niego przypisać, ale inne wywołania (np. manipulacja kształtem) są nieprawidłowe.

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

Zwraca dane jako Eigen :: Tensor z wymiarami NDIMS, zwijając wszystkie wymiary Tensor oprócz ostatniego NDIMS-1 do pierwszego wymiaru wyniku.

Jeśli NDIMS> dims (), to wiodące wymiary rozmiaru 1 zostaną dodane, aby uzyskać wynikowy ranking NDIMS.

flat_inner_dims

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

flat_inner_outer_dims

TTypes< T, NDIMS >::Tensor flat_inner_outer_dims(
  int64 begin
)

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

Zwraca dane jako Eigen :: Tensor z wymiarami NDIMS, zwijając wszystkie wymiary Tensor oprócz pierwszego NDIMS-1 do ostatniego wymiaru wyniku.

Jeśli NDIMS> dims (), to końcowe wymiary rozmiaru 1 zostaną dodane, aby wynik był równy NDIMS.

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

Zwróć dane Tensor jako TensorMap o stałym rozmiarze 1: TensorMap > TensorMap > .

Użycie funkcji scalar() umożliwia kompilatorowi przeprowadzenie optymalizacji, ponieważ rozmiar tensora jest znany w czasie kompilacji.

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