tensorflow:: Tensor

#include <tensor.h>

Merepresentasikan larik nilai berdimensi n.

Ringkasan

Konstruktor dan Destruktor

Tensor ()
Membuat tensor float 1 dimensi dengan 0 elemen.
Tensor (DataType type, const TensorShape & shape)
Membuat Tensor dengan type dan shape yang diberikan.
Tensor (Allocator *a, DataType type, const TensorShape & shape)
Membuat tensor dengan type dan shape input , menggunakan alokator a untuk mengalokasikan buffer yang mendasarinya.
Tensor (Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr)
Membuat tensor dengan type dan shape input , menggunakan alokator a dan "allocation_attr" yang ditentukan untuk mengalokasikan buffer yang mendasarinya.
Tensor (DataType type, const TensorShape & shape, TensorBuffer *buf)
Membuat tensor dengan tipe data input, bentuk, dan buffer.
Tensor (DataType type)
Membuat Tensor kosong dengan tipe data yang diberikan.
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 salinan.
Tensor ( Tensor && other)
Konstruktor pemindahan.
~Tensor ()

Fungsi publik

AllocatedBytes () const
size_t
AsProtoField (TensorProto *proto) const
void
Mengisi proto dengan konten tensor *this .
AsProtoTensorContent (TensorProto *proto) const
void
BitcastFrom (const Tensor & other, DataType dtype, const TensorShape & shape)
Salin tensor lain ke dalam tensor ini, ubah bentuknya, dan tafsirkan ulang tipe data buffer.
CopyFrom (const Tensor & other, const TensorShape & shape) TF_MUST_USE_RESULT
bool
Salin tensor lain ke dalam tensor ini dan ubah bentuknya.
DebugString (int num_values) const
string
Ringkasan tensor yang mudah dibaca manusia dan cocok untuk debugging.
DebugString () const
string
DeviceSafeDebugString () const
string
FillDescription (TensorDescription *description) const
void
Isi proto TensorDescription dengan metadata tentang tensor yang berguna untuk pemantauan dan debugging.
FromProto (const TensorProto & other) TF_MUST_USE_RESULT
bool
Uraikan other dan bangun tensornya.
FromProto (Allocator *a, const TensorProto & other) TF_MUST_USE_RESULT
bool
IsAligned () const
bool
Mengembalikan nilai true jika dan hanya jika tensor ini sejajar.
IsInitialized () const
bool
Jika perlu, apakah Tensor ini sudah diinisialisasi?
IsSameSize (const Tensor & b) const
bool
NumElements () const
int64
Aksesori praktis untuk bentuk tensor.
SharesBufferWith (const Tensor & b) const
bool
Slice (int64 dim0_start, int64 dim0_limit) const
Iris tensor ini sepanjang dimensi pertama.
SubSlice (int64 index) const
Pilih sub-irisan dari tensor ini sepanjang dimensi pertama.
SummarizeValue (int64 max_entries, bool print_v2) const
string
Ubah nilai max_entries pertama dalam *this menjadi string.
TotalBytes () const
size_t
Mengembalikan perkiraan penggunaan memori tensor ini.
UnsafeCopyFromInternal (const Tensor & other, DataType dtype, const TensorShape & shape)
void
Mirip dengan BitcastFrom, tetapi CHECK akan gagal jika salah satu prasyarat tidak terpenuhi.
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes)
TTypes< T, NDIMS >:: Tensor
Mengembalikan data tensor ke Eigen::Tensor dengan bentuk baru yang ditentukan dalam new_sizes dan diubah ke tipe data baru T
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) const
TTypes< T, NDIMS >::ConstTensor
Mengembalikan data tensor ke Eigen::Tensor dengan bentuk baru yang ditentukan dalam new_sizes dan diubah ke tipe data baru T
bit_casted_tensor ()
TTypes< T, NDIMS >:: Tensor
Mengembalikan data tensor ke Eigen::Tensor dengan ukuran yang sama tetapi dengan konversi bitwise ke tipe data T yang ditentukan.
bit_casted_tensor () const
TTypes< T, NDIMS >::ConstTensor
Mengembalikan data tensor ke Eigen::Tensor dengan ukuran yang sama tetapi dengan konversi bitwise ke tipe data T yang ditentukan.
dim_size (int d) const
int64
Aksesori praktis untuk bentuk tensor.
dims () const
int
Aksesori praktis untuk bentuk tensor.
dtype () const
DataType
Mengembalikan tipe data.
flat ()
TTypes< T >::Flat
Mengembalikan data tensor sebagai Eigen::Tensor dengan tipe data dan bentuk yang ditentukan.
flat () const
TTypes< T >::ConstFlat
flat_inner_dims ()
TTypes< T, NDIMS >:: Tensor
Mengembalikan data sebagai Eigen::Tensor dengan dimensi NDIMS, menggabungkan semua dimensi Tensor kecuali NDIMS-1 terakhir ke dalam dimensi pertama dari hasilnya.
flat_inner_dims () const
TTypes< T, NDIMS >::ConstTensor
flat_inner_outer_dims (int64 begin)
TTypes< T, NDIMS >:: Tensor
Mengembalikan data sebagai Eigen::Tensor dengan dimensi NDIMS, menggabungkan dimensi Tensor 'begin' pertama ke dalam dimensi pertama hasil dan dimensi Tensor dari dims() - 'begin' - NDIMS terakhir ke dalam dimensi terakhir hasil.
flat_inner_outer_dims (int64 begin) const
TTypes< T, NDIMS >::ConstTensor
flat_outer_dims ()
TTypes< T, NDIMS >:: Tensor
Mengembalikan data sebagai Eigen::Tensor dengan dimensi NDIMS, menggabungkan semua dimensi Tensor kecuali NDIMS-1 pertama ke dalam dimensi terakhir dari hasilnya.
flat_outer_dims () const
TTypes< T, NDIMS >::ConstTensor
matrix ()
TTypes< T >::Matrix
matrix () const
TTypes< T >::ConstMatrix
operator= (const Tensor & other)
Operator penugasan. Tensor ini berbagi penyimpanan dasar dengan tensor lainnya.
operator= ( Tensor && other)
Operator pemindahan. Lihat konstruktor pemindahan untuk detailnya.
reinterpret_last_dimension ()
TTypes< T, NDIMS >:: Tensor
Mengembalikan data tensor ke Eigen::Tensor dengan elemen dimensi terakhir dikonversi menjadi elemen tunggal dari tipe yang lebih besar.
reinterpret_last_dimension () const
TTypes< T, NDIMS >::ConstTensor
Mengembalikan data tensor ke Eigen::Tensor dengan elemen dimensi terakhir dikonversi menjadi elemen tunggal dari tipe yang lebih besar.
scalar ()
TTypes< T >::Scalar
Mengembalikan data Tensor sebagai TensorMap dengan ukuran tetap 1: TensorMap > .
scalar () const
TTypes< T >::ConstScalar
shape () const
const TensorShape &
Mengembalikan bentuk tensor.
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
Mengembalikan StringPiece yang memetakan buffer tensor saat ini.
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
Mengembalikan data tensor sebagai Eigen::Tensor dengan tipe dan ukuran Tensor ini.
vec () const
TTypes< T >::ConstVec
Versi konstanta dari semua metode di atas.

Fungsi publik

Byte yang Dialokasikan

size_t AllocatedBytes() const 

SebagaiProtoField

void AsProtoField(
  TensorProto *proto
) const 

Mengisi proto dengan konten tensor *this .

AsProtoField() mengisi field yang berulang untuk proto.dtype() , sedangkan AsProtoTensorContent() mengkodekan konten dalam proto.tensor_content() dalam bentuk yang ringkas.

AsProtoTensorContent

void AsProtoTensorContent(
  TensorProto *proto
) const 

BitcastFrom

Status BitcastFrom(
  const Tensor & other,
  DataType dtype,
  const TensorShape & shape
)

Salin tensor lain ke dalam tensor ini, ubah bentuknya, dan tafsirkan ulang tipe data buffer.

Jika Status::OK() dikembalikan, kedua tensor tersebut sekarang berbagi penyimpanan dasar yang sama.

Panggilan ini mensyaratkan bahwa tensor other dan tipe serta bentuk yang diberikan "kompatibel" (yaitu, keduanya menempati jumlah byte yang sama).

Secara khusus:

bentuk.num_elemen() * UkuranTipeData(tipe)

harus sama dengan

other.num_elements() * DataTypeSize(other.dtype())

Selain itu, fungsi ini membutuhkan:

  • UkuranTipeData(other.dtype()) != 0
  • UkuranTipeData(tipe) != 0

Jika salah satu persyaratan tidak terpenuhi, maka errors::InvalidArgument akan dikembalikan.

Salin Dari

bool CopyFrom(
  const Tensor & other,
  const TensorShape & shape
) TF_MUST_USE_RESULT

Salin tensor lain ke dalam tensor ini dan ubah bentuknya.

Tensor ini berbagi penyimpanan dasar dengan tensor lainnya. Mengembalikan true jika dan hanya jika other.shape() memiliki jumlah elemen yang sama dengan shape yang diberikan.

String Debug

string DebugString(
  int num_values
) const 

Ringkasan tensor yang mudah dibaca manusia dan cocok untuk keperluan debugging.

String Debug

string DebugString() const 

DeviceSafeDebugString

string DeviceSafeDebugString() const 

IsiDeskripsi

void FillDescription(
  TensorDescription *description
) const 

Isi proto TensorDescription dengan metadata tentang tensor yang berguna untuk pemantauan dan debugging.

DariProto

bool FromProto(
  const TensorProto & other
) TF_MUST_USE_RESULT

Uraikan other dan bangun tensornya.

Mengembalikan true jika penguraian berhasil. Jika penguraian gagal, keadaan *this tidak berubah.

DariProto

bool FromProto(
  Allocator *a,
  const TensorProto & other
) TF_MUST_USE_RESULT

Apakah Sejajar

bool IsAligned() const 

Mengembalikan nilai true jika dan hanya jika tensor ini sejajar.

Diinisialisasi

bool IsInitialized() const 

Jika perlu, apakah Tensor ini sudah diinisialisasi?

Tensor dengan nol elemen selalu dianggap telah diinisialisasi, meskipun belum pernah diberi nilai dan tidak memiliki alokasi memori.

Ukurannya Sama

bool IsSameSize(
  const Tensor & b
) const 

JumlahElemen

int64 NumElements() const 

Aksesori praktis untuk bentuk tensor.

SharesBufferWith

bool SharesBufferWith(
  const Tensor & b
) const 

Mengiris

Tensor Slice(
  int64 dim0_start,
  int64 dim0_limit
) const 

Iris tensor ini sepanjang dimensi pertama.

Artinya, tensor yang dikembalikan memenuhi returned[i, ...] == this[dim0_start + i, ...]. Tensor yang dikembalikan berbagi buffer tensor yang mendasarinya dengan tensor ini.

CATATAN: Tensor yang dikembalikan mungkin tidak memenuhi persyaratan perataan yang sama dengan tensor ini tergantung pada bentuknya. Pemanggil harus memeriksa perataan tensor yang dikembalikan sebelum memanggil metode tertentu yang memiliki persyaratan perataan (misalnya, flat() , tensor() ).

CATATAN: Saat diberi input tensor N-dimensi, metode ini akan mengembalikan tensor yang juga memiliki N dimensi. Jika Anda ingin memilih sub-tensor, lihat SubSlice.

MEMBUTUHKAN: dims() >= 1 MEMBUTUHKAN: 0 <= dim0_start <= dim0_limit <= dim_size(0)

SubSlice

Tensor SubSlice(
  int64 index
) const 

Pilih sub-irisan dari tensor ini sepanjang dimensi pertama.

Saat diberi input tensor berdimensi N, metode ini mengembalikan tensor dengan N-1 dimensi, di mana tensor yang dikembalikan merupakan subslice dari tensor input sepanjang dimensi pertama. N-1 dimensi dari tensor yang dikembalikan adalah N-1 dimensi terakhir dari tensor input.

CATATAN: Tensor yang dikembalikan mungkin tidak memenuhi persyaratan perataan yang sama dengan tensor ini tergantung pada bentuknya. Pemanggil harus memeriksa perataan tensor yang dikembalikan sebelum memanggil metode tertentu yang memiliki persyaratan perataan (misalnya, flat() , tensor() ).

MEMBUTUHKAN: dims() >= 1 MEMBUTUHKAN: 0 <= dim0_start < dim_size(0)

Ringkaskan Nilai

string SummarizeValue(
  int64 max_entries,
  bool print_v2
) const 

Ubah nilai max_entries pertama dalam *this menjadi string.

Tensor

 Tensor()

Membuat tensor float 1 dimensi dengan 0 elemen.

Tensor yang dikembalikan bukanlah skalar (bentuk {}), melainkan Tensor satu dimensi kosong (bentuk {0}, NumElements() == 0). Karena tidak memiliki elemen, Tensor ini tidak perlu diberi nilai dan diinisialisasi secara default ( IsInitialized() bernilai true). Jika ini tidak diinginkan, pertimbangkan untuk membuat skalar satu elemen yang memang memerlukan inisialisasi:

Tensor(DT_FLOAT, TensorShape({}))

      

Tensor

 Tensor(
  DataType type,
  const TensorShape & shape
)

Membuat Tensor dengan type dan shape yang diberikan.

Jika LogMemory::IsEnabled(), alokasi tersebut dicatat berasal dari kernel dan langkah yang tidak dikenal. Memanggil konstruktor Tensor secara langsung dari dalam Op sudah usang: gunakan metode allocate_* dari OpKernelConstruction/OpKernelContext untuk mengalokasikan tensor baru, yang mencatat kernel dan langkahnya.

Buffer yang mendasarinya dialokasikan menggunakan CPUAllocator .

Tensor

 Tensor(
  Allocator *a,
  DataType type,
  const TensorShape & shape
)

Membuat tensor dengan type dan shape input , menggunakan alokator a untuk mengalokasikan buffer yang mendasarinya.

Jika LogMemory::IsEnabled(), alokasi tersebut dicatat berasal dari kernel dan langkah yang tidak dikenal. Memanggil konstruktor Tensor secara langsung dari dalam Op sudah usang: gunakan metode allocate_* dari OpKernelConstruction/OpKernelContext untuk mengalokasikan tensor baru, yang mencatat kernel dan langkahnya.

a keharusan untuk bertahan lebih lama dari masa hidup Tensor ini.

Tensor

 Tensor(
  Allocator *a,
  DataType type,
  const TensorShape & shape,
  const AllocationAttributes & allocation_attr
)

Membuat tensor dengan type dan shape input , menggunakan alokator a dan "allocation_attr" yang ditentukan untuk mengalokasikan buffer yang mendasarinya.

Jika kernel dan langkah diketahui, maka allocation_attr.allocation_will_be_logged harus diatur ke true dan LogMemory::RecordTensorAllocation harus dipanggil setelah tensor dibuat. Memanggil konstruktor Tensor secara langsung dari dalam Op sudah usang: gunakan metode allocate_* dari OpKernelConstruction/OpKernelContext untuk mengalokasikan tensor baru, yang mencatat kernel dan langkah.

a keharusan untuk bertahan lebih lama dari masa hidup Tensor ini.

Tensor

 Tensor(
  DataType type,
  const TensorShape & shape,
  TensorBuffer *buf
)

Membuat tensor dengan tipe data input, bentuk, dan buffer.

Memperoleh referensi pada buf yang dimiliki oleh Tensor ini.

Tensor

 Tensor(
  DataType type
)

Membuat Tensor kosong dengan tipe data yang diberikan.

Seperti Tensor() , mengembalikan Tensor 1 dimensi dengan 0 elemen dan IsInitialized() mengembalikan True. Lihat dokumentasi Tensor() untuk detailnya.

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

Tensor

 Tensor(
  Tensor && other
)

Konstruktor pemindahan.

Setelah panggilan ini, Objek ini dapat dihancurkan dengan aman dan dapat diberi nilai, tetapi panggilan lain padanya (misalnya manipulasi bentuk) tidak valid.

Total Byte

size_t TotalBytes() const 

Mengembalikan perkiraan penggunaan memori tensor ini.

Salinan Tidak AmanDariInternal

void UnsafeCopyFromInternal(
  const Tensor & other,
  DataType dtype,
  const TensorShape & shape
)

Mirip dengan BitcastFrom, tetapi CHECK akan gagal jika salah satu prasyarat tidak terpenuhi.

Tidak digunakan lagi. Gunakan BitcastFrom sebagai gantinya dan periksa Status yang dikembalikan.

bit_cast_shaped

TTypes< T, NDIMS >::Tensor bit_casted_shaped(
  gtl::ArraySlice< int64 > new_sizes
)

Mengembalikan data tensor ke Eigen::Tensor dengan bentuk baru yang ditentukan dalam new_sizes dan diubah ke tipe data baru T

Penggunaan bitcast berguna untuk operasi pemindahan dan penyalinan. Bitcast yang diizinkan adalah satu-satunya perbedaan dari shaped() .

bit_cast_shaped

TTypes< T, NDIMS >::ConstTensor bit_casted_shaped(
  gtl::ArraySlice< int64 > new_sizes
) const 

Mengembalikan data tensor ke Eigen::Tensor dengan bentuk baru yang ditentukan dalam new_sizes dan diubah ke tipe data baru T

Penggunaan bitcast berguna untuk operasi pemindahan dan penyalinan. Bitcast yang diizinkan adalah satu-satunya perbedaan dari shaped() .

tensor_bit_casted

TTypes< T, NDIMS >::Tensor bit_casted_tensor()

Mengembalikan data tensor ke Eigen::Tensor dengan ukuran yang sama tetapi dengan konversi bitwise ke tipe data T yang ditentukan.

Penggunaan bitcast berguna untuk operasi pemindahan dan penyalinan. CATATAN: ini sama dengan tensor() kecuali bitcast diperbolehkan.

tensor_bit_casted

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

Mengembalikan data tensor ke Eigen::Tensor dengan ukuran yang sama tetapi dengan konversi bitwise ke tipe data T yang ditentukan.

Penggunaan bitcast berguna untuk operasi pemindahan dan penyalinan. CATATAN: ini sama dengan tensor() kecuali bitcast diperbolehkan.

ukuran_dimensi

int64 dim_size(
  int d
) const 

Aksesori praktis untuk bentuk tensor.

dimensi

int dims() const 

Aksesori praktis untuk bentuk tensor.

Untuk semua pengakses bentuk, lihat komentar untuk metode yang relevan dari TensorShape di tensor_shape.h .

tipe data

DataType dtype() const 

Mengembalikan tipe data.

datar

TTypes< T >::Flat flat()

Mengembalikan data tensor sebagai Eigen::Tensor dengan tipe data dan bentuk yang ditentukan.

Metode-metode ini memungkinkan Anda mengakses data dengan dimensi dan ukuran pilihan Anda. Anda tidak perlu mengetahui jumlah dimensi Tensor untuk memanggilnya. Namun, metode ini CHECK apakah tipenya cocok dan dimensi yang diminta akan membuat Eigen::Tensor dengan jumlah elemen yang sama dengan tensor tersebut.

Contoh:

  
    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 

dimensi dalam datar

TTypes< T, NDIMS >::Tensor flat_inner_dims()

Mengembalikan data sebagai Eigen::Tensor dengan dimensi NDIMS, menggabungkan semua dimensi Tensor kecuali NDIMS-1 terakhir ke dalam dimensi pertama dari hasilnya.

Jika NDIMS > dims() maka dimensi terdepan dengan ukuran 1 akan ditambahkan untuk membuat rank output menjadi NDIMS.

dimensi dalam datar

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

dimensi dalam_luar_datar

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

Mengembalikan data sebagai Eigen::Tensor dengan dimensi NDIMS, menggabungkan dimensi Tensor 'begin' pertama ke dalam dimensi pertama hasil dan dimensi Tensor dari dims() - 'begin' - NDIMS terakhir ke dalam dimensi terakhir hasil.

Jika 'begin' < 0 maka |'begin'| dimensi terdepan dengan ukuran 1 akan ditambahkan. Jika 'begin' + NDIMS > dims() maka 'begin' + NDIMS - dims() dimensi belakang dengan ukuran 1 akan ditambahkan.

dimensi dalam_luar_datar

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

dimensi_luar_datar

TTypes< T, NDIMS >::Tensor flat_outer_dims()

Mengembalikan data sebagai Eigen::Tensor dengan dimensi NDIMS, menggabungkan semua dimensi Tensor kecuali NDIMS-1 pertama ke dalam dimensi terakhir dari hasilnya.

Jika NDIMS > dims() maka dimensi tambahan berukuran 1 akan ditambahkan untuk membuat peringkat output menjadi NDIMS.

dimensi_luar_datar

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

matriks

TTypes< T >::Matrix matrix()

matriks

TTypes< T >::ConstMatrix matrix() const 

operator=

Tensor & operator=(
  const Tensor & other
)

Operator penugasan. Tensor ini berbagi penyimpanan dasar dengan tensor lainnya.

operator=

Tensor & operator=(
  Tensor && other
)

Operator pemindahan. Lihat konstruktor pemindahan untuk detailnya.

menafsirkan ulang dimensi terakhir

TTypes< T, NDIMS >::Tensor reinterpret_last_dimension()

Mengembalikan data tensor ke Eigen::Tensor dengan elemen dimensi terakhir dikonversi menjadi elemen tunggal dari tipe yang lebih besar.

Sebagai contoh, ini berguna untuk kernel yang dapat memperlakukan tensor NCHW_VECT_C int8 sebagai tensor NCHW int32. sizeof(T) harus sama dengan ukuran tipe elemen asli * num elemen pada dimensi terakhir asli. NDIMS harus 1 kurang dari jumlah dimensi asli.

menafsirkan ulang dimensi terakhir

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

Mengembalikan data tensor ke Eigen::Tensor dengan elemen dimensi terakhir dikonversi menjadi elemen tunggal dari tipe yang lebih besar.

Sebagai contoh, ini berguna untuk kernel yang dapat memperlakukan tensor NCHW_VECT_C int8 sebagai tensor NCHW int32. sizeof(T) harus sama dengan ukuran tipe elemen asli * num elemen pada dimensi terakhir asli. NDIMS harus 1 kurang dari jumlah dimensi asli.

skalar

TTypes< T >::Scalar scalar()

Mengembalikan data Tensor sebagai TensorMap dengan ukuran tetap 1: TensorMap > .

Penggunaan scalar() memungkinkan kompiler untuk melakukan optimasi karena ukuran tensor diketahui pada saat kompilasi.

skalar

TTypes< T >::ConstScalar scalar() const 

membentuk

const TensorShape & shape() const 

Mengembalikan bentuk tensor.

berbentuk

TTypes< T, NDIMS >::Tensor shaped(
  gtl::ArraySlice< int64 > new_sizes
)

berbentuk

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 

Mengembalikan StringPiece yang memetakan buffer tensor saat ini.

StringPiece yang dikembalikan mungkin menunjuk ke lokasi memori pada perangkat yang tidak dapat diakses langsung oleh CPU.

CATATAN: Buffer tensor yang mendasarinya dihitung referensinya, sehingga masa hidup konten yang dipetakan oleh StringPiece sesuai dengan masa hidup buffer; pemanggil harus mengatur agar buffer tidak dihancurkan saat StringPiece masih digunakan.

MEMBUTUHKAN: DataTypeCanUseMemcpy(dtype()) .

tidak sejajar

TTypes< T >::UnalignedFlat unaligned_flat()

tidak sejajar

TTypes< T >::UnalignedConstFlat unaligned_flat() const 

berbentuk tidak sejajar

TTypes< T, NDIMS >::UnalignedTensor unaligned_shaped(
  gtl::ArraySlice< int64 > new_sizes
)

berbentuk tidak sejajar

TTypes< T, NDIMS >::UnalignedConstTensor unaligned_shaped(
  gtl::ArraySlice< int64 > new_sizes
) const 

vektor

TTypes< T >::Vec vec()

Mengembalikan data tensor sebagai Eigen::Tensor dengan tipe dan ukuran Tensor ini.

Gunakan metode ini ketika Anda mengetahui tipe data dan jumlah dimensi Tensor, dan Anda menginginkan Eigen::Tensor yang ukurannya disesuaikan secara otomatis dengan ukuran Tensor tersebut. Pemeriksaan implementasi akan gagal jika tipe atau ukurannya tidak sesuai.

Contoh:

  
    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 

Versi konstanta dari semua metode di atas.

~Tensor

 ~Tensor()