เทนเซอร์โฟลว์::เทนเซอร์

#include <tensor.h>

แสดงถึงอาร์เรย์ของค่าที่มีมิติ n

สรุป

ตัวสร้างและตัวทำลาย

Tensor ()
สร้างเทนเซอร์แบบ float 1 มิติ ที่มี 0 องค์ประกอบ
Tensor (DataType type, const TensorShape & shape)
สร้าง เทนเซอร์ ที่มี type และ shape ตามที่กำหนดให้
Tensor (Allocator *a, DataType type, const TensorShape & shape)
สร้างเทนเซอร์ที่มี type และ shape ตามข้อมูลป้อนเข้า โดยใช้ตัวจัดสรรหน่วยความจำ a เพื่อจัดสรรบัฟเฟอร์พื้นฐาน
Tensor (Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr)
สร้างเทนเซอร์ที่มี type และ shape ตามอินพุต โดยใช้ตัวจัดสรรหน่วยความจำ a และ "allocation_attr" ที่ระบุเพื่อจัดสรรบัฟเฟอร์พื้นฐาน
Tensor (DataType type, const TensorShape & shape, TensorBuffer *buf)
สร้างเทนเซอร์ด้วยชนิดข้อมูล รูปร่าง และบัฟเฟอร์ที่ป้อนเข้ามา
Tensor (DataType type)
สร้าง เทนเซอร์ ว่างเปล่าที่มีประเภทข้อมูลที่กำหนด
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)
ตัวสร้างสำเนา
Tensor ( Tensor && other)
ย้ายคอนสตรัคเตอร์
~Tensor ()

หน้าที่สาธารณะ

AllocatedBytes () const
size_t
AsProtoField (TensorProto *proto) const
void
เติมข้อมูล proto ด้วยเนื้อหาของเทนเซอร์ *this
AsProtoTensorContent (TensorProto *proto) const
void
BitcastFrom (const Tensor & other, DataType dtype, const TensorShape & shape)
คัดลอกเทนเซอร์อื่นลงในเทนเซอร์นี้ ปรับรูปร่างใหม่ และตีความชนิดข้อมูลของบัฟเฟอร์ใหม่
CopyFrom (const Tensor & other, const TensorShape & shape) TF_MUST_USE_RESULT
bool
คัดลอกเทนเซอร์อื่นลงในเทนเซอร์นี้ แล้วปรับรูปร่างใหม่
DebugString (int num_values) const
string
สรุปข้อมูลเทนเซอร์ในรูปแบบที่มนุษย์อ่านได้ เหมาะสำหรับการแก้ไขข้อผิดพลาด
DebugString () const
string
DeviceSafeDebugString () const
string
FillDescription (TensorDescription *description) const
void
กรอกข้อมูลเมตาเกี่ยวกับเทนเซอร์ลงใน TensorDescription proto เพื่อให้ข้อมูลเหล่านั้นมีประโยชน์สำหรับการตรวจสอบและแก้ไขข้อผิดพลาด
FromProto (const TensorProto & other) TF_MUST_USE_RESULT
bool
แยกวิเคราะห์ส่วน other และสร้างเทนเซอร์
FromProto (Allocator *a, const TensorProto & other) TF_MUST_USE_RESULT
bool
IsAligned () const
bool
ส่งคืนค่าจริงก็ต่อเมื่อเทนเซอร์นี้อยู่ในแนวที่ถูกต้อง
IsInitialized () const
bool
ถ้าจำเป็น ได้ทำการเริ่มต้น ค่าเทนเซอร์ นี้แล้วหรือไม่?
IsSameSize (const Tensor & b) const
bool
NumElements () const
int64
ตัวช่วยอำนวยความสะดวกสำหรับรูปทรงเทนเซอร์
SharesBufferWith (const Tensor & b) const
bool
Slice (int64 dim0_start, int64 dim0_limit) const
หั่นเทนเซอร์นี้ตามมิติที่ 1
SubSlice (int64 index) const
เลือกส่วนย่อยจากเทนเซอร์นี้ตามมิติที่ 1
SummarizeValue (int64 max_entries, bool print_v2) const
string
แปลงค่า max_entries แรกใน *this ให้เป็นสตริง
TotalBytes () const
size_t
ส่งคืนค่าการใช้งานหน่วยความจำโดยประมาณของเทนเซอร์นี้
UnsafeCopyFromInternal (const Tensor & other, DataType dtype, const TensorShape & shape)
void
คล้ายกับ BitcastFrom แต่ CHECK จะล้มเหลวหากไม่ตรงตามเงื่อนไขเบื้องต้นใดๆ
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes)
TTypes< T, NDIMS >:: Tensor
ส่งข้อมูลเทนเซอร์กลับไปยัง Eigen::Tensor ด้วยรูปร่างใหม่ที่ระบุใน new_sizes และแปลงเป็น dtype ใหม่ T
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) const
TTypes< T, NDIMS >::ConstTensor
ส่งข้อมูลเทนเซอร์กลับไปยัง Eigen::Tensor ด้วยรูปร่างใหม่ที่ระบุใน new_sizes และแปลงเป็น dtype ใหม่ T
bit_casted_tensor ()
TTypes< T, NDIMS >:: Tensor
ส่งข้อมูลเทนเซอร์กลับไปยัง Eigen::Tensor ที่มีขนาดเท่าเดิม แต่แปลงค่าแบบบิตไวส์เป็นชนิดข้อมูล T ที่ระบุ
bit_casted_tensor () const
TTypes< T, NDIMS >::ConstTensor
ส่งข้อมูลเทนเซอร์กลับไปยัง Eigen::Tensor ที่มีขนาดเท่าเดิม แต่แปลงค่าแบบบิตไวส์เป็นชนิดข้อมูล T ที่ระบุ
dim_size (int d) const
int64
อุปกรณ์เสริมที่สะดวกต่อการใช้งานสำหรับรูปทรงเทนเซอร์
dims () const
int
อุปกรณ์เสริมที่สะดวกต่อการใช้งานสำหรับรูปทรงเทนเซอร์
dtype () const
DataType
ส่งคืนชนิดข้อมูล
flat ()
TTypes< T >::Flat
ส่งคืนข้อมูลเทนเซอร์ในรูปแบบ Eigen::Tensor ที่มีประเภทข้อมูลและรูปร่างที่ระบุไว้
flat () const
TTypes< T >::ConstFlat
flat_inner_dims ()
TTypes< T, NDIMS >:: Tensor
ส่งคืนข้อมูลในรูปแบบ Eigen::Tensor ที่มีมิติ NDIMS โดยยุบรวมมิติ Tensor ทั้งหมด ยกเว้น NDIMS-1 สุดท้าย เข้าไว้ในมิติแรกของผลลัพธ์
flat_inner_dims () const
TTypes< T, NDIMS >::ConstTensor
flat_inner_outer_dims (int64 begin)
TTypes< T, NDIMS >:: Tensor
ส่งคืนข้อมูลในรูปแบบ Eigen::Tensor ที่มีมิติ NDIMS โดยยุบมิติ Tensor 'begin' แรกเข้ากับมิติแรกของผลลัพธ์ และยุบมิติ Tensor ของ dims() สุดท้าย - 'begin' - NDIMS เข้ากับมิติสุดท้ายของผลลัพธ์
flat_inner_outer_dims (int64 begin) const
TTypes< T, NDIMS >::ConstTensor
flat_outer_dims ()
TTypes< T, NDIMS >:: Tensor
ส่งคืนข้อมูลในรูปแบบ Eigen::Tensor ที่มีมิติ NDIMS โดยยุบรวมมิติ Tensor ทั้งหมด ยกเว้น NDIMS-1 แรก เข้าไว้ในมิติสุดท้ายของผลลัพธ์
flat_outer_dims () const
TTypes< T, NDIMS >::ConstTensor
matrix ()
TTypes< T >::Matrix
matrix () const
TTypes< T >::ConstMatrix
operator= (const Tensor & other)
ตัวดำเนินการกำหนดค่า เทนเซอร์นี้ใช้พื้นที่จัดเก็บข้อมูลร่วมกับเทนเซอร์อื่น
operator= ( Tensor && other)
ตัวดำเนินการเคลื่อนย้าย โปรดดูตัวสร้างการเคลื่อนย้ายสำหรับรายละเอียดเพิ่มเติม
reinterpret_last_dimension ()
TTypes< T, NDIMS >:: Tensor
ส่งกลับข้อมูลเทนเซอร์ไปยัง Eigen::Tensor โดยแปลงองค์ประกอบมิติสุดท้ายให้เป็นองค์ประกอบเดี่ยวที่มีชนิดข้อมูลขนาดใหญ่กว่า
reinterpret_last_dimension () const
TTypes< T, NDIMS >::ConstTensor
ส่งกลับข้อมูลเทนเซอร์ไปยัง Eigen::Tensor โดยแปลงองค์ประกอบมิติสุดท้ายให้เป็นองค์ประกอบเดี่ยวที่มีชนิดข้อมูลขนาดใหญ่กว่า
scalar ()
TTypes< T >::Scalar
ส่งคืนข้อมูล Tensor ในรูปแบบ TensorMap ที่มีขนาดคงที่ 1: TensorMap > .
scalar () const
TTypes< T >::ConstScalar
shape () const
const TensorShape &
ส่งคืนรูปร่างของเทนเซอร์
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
ส่งคืนค่า StringPiece ที่แมปบัฟเฟอร์ของเทนเซอร์ปัจจุบัน
unaligned_flat ()
TTypes< T >::UnalignedFlat
unaligned_flat () const
TTypes< T >::UnalignedConstFlat
unaligned_shaped (gtl::ArraySlice< int64 > new_sizes)
TTypes< T, NDIMS >::UnalignedTensor
unaligned_shaped (gtl::ArraySlice< int64 > new_sizes) const
TTypes< T, NDIMS >::UnalignedConstTensor
vec ()
TTypes< T >::Vec
ส่งคืนข้อมูลเทนเซอร์ในรูป Eigen::Tensor โดยใช้ประเภทและขนาดของ Tensor นี้
vec () const
TTypes< T >::ConstVec
เวอร์ชันคงที่ของวิธีการทั้งหมดข้างต้น

หน้าที่สาธารณะ

ไบต์ที่จัดสรร

size_t AllocatedBytes() const 

แอสโปรโตฟิลด์

void AsProtoField(
  TensorProto *proto
) const 

เติมข้อมูล proto ด้วยเนื้อหาของเทนเซอร์ *this

AsProtoField() จะเติมข้อมูลในฟิลด์ที่ซ้ำกันสำหรับ proto.dtype() ในขณะที่ AsProtoTensorContent() จะเข้ารหัสเนื้อหาใน proto.tensor_content() ในรูปแบบที่กระชับ

แอสโปรโตเทนเซอร์คอนเทนต์

void AsProtoTensorContent(
  TensorProto *proto
) const 

บิตแคสต์จาก

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

คัดลอกเทนเซอร์อื่นลงในเทนเซอร์นี้ ปรับรูปร่างใหม่ และตีความชนิดข้อมูลของบัฟเฟอร์ใหม่

หากส่งค่า Status::OK() กลับมา แสดงว่าเทนเซอร์ทั้งสองใช้พื้นที่จัดเก็บข้อมูลพื้นฐานเดียวกันแล้ว

การเรียกใช้ฟังก์ชันนี้ต้องการให้เทนเซอร์ other และประเภทและรูปร่างที่กำหนดนั้น "เข้ากันได้" (กล่าวคือ ต้องใช้จำนวนไบต์เท่ากัน)

โดยเฉพาะอย่างยิ่ง:

shape.num_elements() * DataTypeSize(type)

ต้องเท่ากับ

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

นอกจากนี้ ฟังก์ชันนี้ยังต้องการ:

  • DataTypeSize(other.dtype()) != 0
  • ขนาดประเภทข้อมูล (type) != 0

หากไม่ตรงตามข้อกำหนดใดๆ จะส่งคืนค่า errors::InvalidArgument

คัดลอกจาก

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

คัดลอกเทนเซอร์อื่นลงในเทนเซอร์นี้ แล้วปรับรูปร่างใหม่

เทนเซอร์นี้ใช้พื้นที่จัดเก็บข้อมูลร่วมกับเทนเซอร์อื่น ส่งคืน true เมื่อ other.shape() มีจำนวนองค์ประกอบที่มี shape ที่กำหนดเท่ากัน

ดีบักสตริง

string DebugString(
  int num_values
) const 

สรุปข้อมูลเทนเซอร์ในรูปแบบที่มนุษย์อ่านได้ เหมาะสำหรับการแก้ไขข้อผิดพลาด

ดีบักสตริง

string DebugString() const 

DeviceSafeDebugString

string DeviceSafeDebugString() const 

กรอกรายละเอียด

void FillDescription(
  TensorDescription *description
) const 

กรอกข้อมูลเมตาเกี่ยวกับเทนเซอร์ลงใน TensorDescription proto เพื่อให้ข้อมูลเหล่านั้นมีประโยชน์สำหรับการตรวจสอบและแก้ไขข้อผิดพลาด

จากโปรโต

bool FromProto(
  const TensorProto & other
) TF_MUST_USE_RESULT

แยกวิเคราะห์ส่วน other และสร้างเทนเซอร์

ส่งคืนค่า true ก็ต่อเมื่อการแยกวิเคราะห์สำเร็จ หากการแยกวิเคราะห์ล้มเหลว สถานะของ *this จะไม่เปลี่ยนแปลง

จากโปรโต

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

จัดแนวแล้ว

bool IsAligned() const 

ส่งคืนค่าจริงก็ต่อเมื่อเทนเซอร์นี้อยู่ในแนวที่ถูกต้อง

ได้รับการเริ่มต้นแล้ว

bool IsInitialized() const 

ถ้าจำเป็น ได้ทำการเริ่มต้น ค่าเทนเซอร์ นี้แล้วหรือไม่?

เทนเซอร์ที่มีองค์ประกอบเป็นศูนย์จะถือว่าได้รับการเริ่มต้นใช้งานแล้วเสมอ แม้ว่าจะไม่เคยมีการกำหนดค่าหรือจัดสรรหน่วยความจำใดๆ ให้กับเทนเซอร์นั้นก็ตาม

ขนาดเท่ากัน

bool IsSameSize(
  const Tensor & b
) const 

จำนวนองค์ประกอบ

int64 NumElements() const 

อุปกรณ์เสริมที่สะดวกต่อการใช้งานสำหรับรูปทรงเทนเซอร์

แชร์บัฟเฟอร์กับ

bool SharesBufferWith(
  const Tensor & b
) const 

ชิ้น

Tensor Slice(
  int64 dim0_start,
  int64 dim0_limit
) const 

หั่นเทนเซอร์นี้ตามมิติที่ 1

กล่าวคือ เทนเซอร์ที่ส่งคืนจะตรงตามเงื่อนไข returned[i, ...] == this[dim0_start + i, ...] เทนเซอร์ที่ส่งคืนจะใช้บัฟเฟอร์เทนเซอร์พื้นฐานร่วมกับเทนเซอร์นี้

หมายเหตุ: เทนเซอร์ที่ส่งคืนอาจไม่ตรงตามข้อกำหนดการจัดเรียงเดียวกันกับเทนเซอร์นี้ ขึ้นอยู่กับรูปร่าง ผู้เรียกต้องตรวจสอบการจัดเรียงของเทนเซอร์ที่ส่งคืนก่อนเรียกใช้เมธอดบางอย่างที่มีข้อกำหนดการจัดเรียง (เช่น flat() , tensor() )

หมายเหตุ: เมื่อป้อนเทนเซอร์ที่มีมิติ N เข้าไป เมธอดนี้จะส่งคืนเทนเซอร์ที่มีมิติ N เช่นกัน หากคุณต้องการเลือกเทนเซอร์ย่อย โปรดดู SubSlice

ต้องมี: dims() >= 1 ต้องมี: 0 <= dim0_start <= dim0_limit <= dim_size(0)

ซับสไลซ์

Tensor SubSlice(
  int64 index
) const 

เลือกส่วนย่อยจากเทนเซอร์นี้ตามมิติที่ 1

เมื่อป้อนเทนเซอร์ที่มีมิติ N เข้าไป เมธอดนี้จะส่งคืนเทนเซอร์ที่มีมิติ N-1 โดยที่เทนเซอร์ที่ส่งคืนเป็นส่วนย่อยของเทนเซอร์อินพุตตามมิติแรก มิติ N-1 ของเทนเซอร์ที่ส่งคืนจะเป็นมิติ N-1 สุดท้ายจากเทนเซอร์อินพุต

หมายเหตุ: เทนเซอร์ที่ส่งคืนอาจไม่ตรงตามข้อกำหนดการจัดเรียงเดียวกันกับเทนเซอร์นี้ ขึ้นอยู่กับรูปร่าง ผู้เรียกต้องตรวจสอบการจัดเรียงของเทนเซอร์ที่ส่งคืนก่อนเรียกใช้เมธอดบางอย่างที่มีข้อกำหนดการจัดเรียง (เช่น flat() , tensor() )

ต้องมี: dims() >= 1 ต้องมี: 0 <= dim0_start < dim_size(0)

สรุปค่า

string SummarizeValue(
  int64 max_entries,
  bool print_v2
) const 

แปลงค่า max_entries แรกใน *this ให้เป็นสตริง

เทนเซอร์

 Tensor()

สร้างเทนเซอร์แบบ float 1 มิติ ที่มี 0 องค์ประกอบ

เทนเซอร์ ที่ส่งคืนมาไม่ใช่สเกลาร์ (รูปร่าง {}) แต่เป็น เทนเซอร์ หนึ่งมิติว่างเปล่า (รูปร่าง {0}, NumElements() == 0) เนื่องจากไม่มีองค์ประกอบ จึงไม่จำเป็นต้องกำหนดค่าและจะถูกเริ่มต้นโดยค่าเริ่มต้น ( IsInitialized() เป็นจริง) หากไม่ต้องการเช่นนี้ โปรดพิจารณาสร้างสเกลาร์ที่มีองค์ประกอบเดียวซึ่งจำเป็นต้องมีการเริ่มต้น:

Tensor(DT_FLOAT, TensorShape({}))

      

Tensor

 Tensor(
  DataType type,
  const TensorShape & shape
)

สร้าง เทนเซอร์ ที่มี type และ shape ตามที่กำหนดให้

หาก LogMemory::IsEnabled() การจัดสรรจะถูกบันทึกว่ามาจากเคอร์เนลและขั้นตอนที่ไม่รู้จัก การเรียกใช้ตัวสร้าง Tensor โดยตรงจากภายใน Op นั้นไม่แนะนำให้ใช้แล้ว: ให้ใช้วิธีการ allocate_* ของ OpKernelConstruction/OpKernelContext เพื่อจัดสรรเทนเซอร์ใหม่ ซึ่งจะบันทึกเคอร์เนลและขั้นตอนไว้

บัฟเฟอร์พื้นฐานจะถูกจัดสรรโดยใช้ CPUAllocator

เทนเซอร์

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

สร้างเทนเซอร์ที่มี type และ shape ตามข้อมูลป้อนเข้า โดยใช้ตัวจัดสรรหน่วยความจำ a เพื่อจัดสรรบัฟเฟอร์พื้นฐาน

หาก LogMemory::IsEnabled() การจัดสรรจะถูกบันทึกว่ามาจากเคอร์เนลและขั้นตอนที่ไม่รู้จัก การเรียกใช้ตัวสร้าง Tensor โดยตรงจากภายใน Op นั้นไม่แนะนำให้ใช้แล้ว: ให้ใช้วิธีการ allocate_* ของ OpKernelConstruction/OpKernelContext เพื่อจัดสรรเทนเซอร์ใหม่ ซึ่งจะบันทึกเคอร์เนลและขั้นตอนไว้

a ต้องมีอายุยืนยาวกว่าอายุขัยของ เทนเซอร์ นี้

เทนเซอร์

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

สร้างเทนเซอร์ที่มี type และ shape ตามอินพุต โดยใช้ตัวจัดสรรหน่วยความจำ a และ "allocation_attr" ที่ระบุเพื่อจัดสรรบัฟเฟอร์พื้นฐาน

หากทราบเคอร์เนลและขั้นตอนแล้ว ควรตั้งค่า allocation_attr.allocation_will_be_logged เป็น true และควรเรียก LogMemory::RecordTensorAllocation หลังจากสร้างเทนเซอร์แล้ว การเรียกตัวสร้าง เทนเซอร์ โดยตรงจากภายใน Op นั้นไม่แนะนำให้ใช้แล้ว ให้ใช้วิธีการ allocate_* ของ OpKernelConstruction/OpKernelContext เพื่อจัดสรรเทนเซอร์ใหม่ ซึ่งจะบันทึกเคอร์เนลและขั้นตอนไว้

a ต้องมีอายุยืนยาวกว่าอายุขัยของ เทนเซอร์ นี้

เทนเซอร์

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

สร้างเทนเซอร์โดยใช้ชนิดข้อมูล รูปร่าง และบัฟเฟอร์ที่ป้อนเข้ามา

รับค่าอ้างอิงบนบัฟที่อยู่ใน เทนเซอร์ นี้

เทนเซอร์

 Tensor(
  DataType type
)

สร้าง เทนเซอร์ ว่างเปล่าที่มีประเภทข้อมูลที่กำหนด

เช่นเดียวกับ Tensor() ฟังก์ชันนี้ จะส่งคืน Tensor แบบ 1 มิติ ที่มี 0 องค์ประกอบ โดยที่ IsInitialized() จะส่งคืนค่า True ดูรายละเอียดเพิ่มเติมได้ในเอกสารประกอบ ของ Tensor()

เทนเซอร์

 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
)

ตัวสร้างสำเนา

เทนเซอร์

 Tensor(
  Tensor && other
)

ย้ายคอนสตรัคเตอร์

หลังจากวางสายแล้ว สามารถทำลายได้อย่างปลอดภัยและสามารถกำหนดค่าได้ แต่การเรียกใช้ฟังก์ชันอื่น ๆ (เช่น การปรับแต่งรูปร่าง) นั้นไม่ถูกต้อง

ไบต์ทั้งหมด

size_t TotalBytes() const 

ส่งคืนค่าการใช้งานหน่วยความจำโดยประมาณของเทนเซอร์นี้

สำเนาที่ไม่ปลอดภัยจากภายใน

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

คล้ายกับ BitcastFrom แต่ CHECK จะล้มเหลวหากไม่ตรงตามเงื่อนไขเบื้องต้นใดๆ

เลิกใช้แล้ว โปรดใช้ BitcastFrom แทน และตรวจสอบ สถานะ ที่ส่งคืน

บิตแคสต์_รูปทรง

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

ส่งข้อมูลเทนเซอร์กลับไปยัง Eigen::Tensor ด้วยรูปร่างใหม่ที่ระบุใน new_sizes และแปลงเป็น dtype ใหม่ T

การใช้ bitcast มีประโยชน์สำหรับการดำเนินการย้ายและคัดลอก ความแตกต่างเพียงอย่างเดียวจาก shaped() คือ bitcast ที่อนุญาต

บิตแคสต์_รูปทรง

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

ส่งข้อมูลเทนเซอร์กลับไปยัง Eigen::Tensor ด้วยรูปร่างใหม่ที่ระบุใน new_sizes และแปลงเป็น dtype ใหม่ T

การใช้ bitcast มีประโยชน์สำหรับการดำเนินการย้ายและคัดลอก ความแตกต่างเพียงอย่างเดียวจาก shaped() คือ bitcast ที่อนุญาต

บิต_แคสต์_เทนเซอร์

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

ส่งข้อมูลเทนเซอร์กลับไปยัง Eigen::Tensor ที่มีขนาดเท่าเดิม แต่แปลงค่าแบบบิตไวส์เป็นชนิดข้อมูล T ที่ระบุ

การใช้ bitcast มีประโยชน์สำหรับการย้ายและการคัดลอกข้อมูล หมายเหตุ: นี่เหมือนกับ tensor() ประการ ยกเว้นว่าอนุญาตให้ใช้ bitcast ได้

บิต_แคสต์_เทนเซอร์

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

ส่งข้อมูลเทนเซอร์กลับไปยัง Eigen::Tensor ที่มีขนาดเท่าเดิม แต่แปลงค่าแบบบิตไวส์เป็นชนิดข้อมูล T ที่ระบุ

การใช้ bitcast มีประโยชน์สำหรับการย้ายและการคัดลอกข้อมูล หมายเหตุ: นี่เหมือนกับ tensor() ประการ ยกเว้นว่าอนุญาตให้ใช้ bitcast ได้

ขนาด

int64 dim_size(
  int d
) const 

อุปกรณ์เสริมที่สะดวกต่อการใช้งานสำหรับรูปทรงเทนเซอร์

ดิมส์

int dims() const 

อุปกรณ์เสริมที่สะดวกต่อการใช้งานสำหรับรูปทรงเทนเซอร์

สำหรับตัวเข้าถึงรูปร่างทั้งหมด โปรดดูคำอธิบายสำหรับวิธีการที่เกี่ยวข้องของ TensorShape ใน tensor_shape.h

dtype

DataType dtype() const 

ส่งคืนชนิดข้อมูล

แบน

TTypes< T >::Flat flat()

ส่งคืนข้อมูลเทนเซอร์ในรูปแบบ Eigen::Tensor ที่มีประเภทข้อมูลและรูปร่างที่ระบุไว้

วิธีการเหล่านี้ช่วยให้คุณเข้าถึงข้อมูลด้วยมิติและขนาดที่คุณเลือกได้ คุณไม่จำเป็นต้องทราบจำนวนมิติของ เทนเซอร์ เพื่อเรียกใช้ แต่พวกมัน CHECK ว่าประเภทตรงกันและมิติที่ร้องขอจะสร้าง Eigen::Tensor ที่มีจำนวนองค์ประกอบเท่ากับเทนเซอร์

ตัวอย่าง:

  
    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 

ขนาดภายในแบบแบน

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

ส่งคืนข้อมูลในรูปแบบ Eigen::Tensor ที่มีมิติ NDIMS โดยยุบรวมมิติ Tensor ทั้งหมด ยกเว้น NDIMS-1 สุดท้าย เข้าไว้ในมิติแรกของผลลัพธ์

ถ้า NDIMS > dims() ระบบจะเพิ่มมิตินำหน้าขนาด 1 เข้าไปเพื่อให้ลำดับของผลลัพธ์เป็น NDIMS

ขนาดภายในแบบแบน

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

ขนาดด้านในด้านนอกแบบแบน

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

ส่งคืนข้อมูลในรูปแบบ Eigen::Tensor ที่มีมิติ NDIMS โดยยุบมิติ Tensor 'begin' แรกเข้ากับมิติแรกของผลลัพธ์ และยุบมิติ Tensor ของ dims() สุดท้าย - 'begin' - NDIMS เข้ากับมิติสุดท้ายของผลลัพธ์

ถ้า 'begin' < 0 จะเพิ่มมิติเริ่มต้นขนาด 1 เข้าไป ถ้า 'begin' + NDIMS > dims() จะเพิ่มมิติท้ายขนาด 1 เข้าไป 'begin' + NDIMS - dims()

ขนาดด้านในด้านนอกแบบแบน

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

ขนาดภายนอกแบบแบน

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

ส่งคืนข้อมูลในรูปแบบ Eigen::Tensor ที่มีมิติ NDIMS โดยยุบรวมมิติ Tensor ทั้งหมด ยกเว้น NDIMS-1 แรก เข้าไว้ในมิติสุดท้ายของผลลัพธ์

ถ้า NDIMS > dims() ระบบจะเพิ่มมิติข้อมูลส่วนท้ายขนาด 1 เพื่อให้ลำดับของผลลัพธ์เป็น NDIMS

ขนาดภายนอกแบบแบน

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

เมทริกซ์

TTypes< T >::Matrix matrix()

เมทริกซ์

TTypes< T >::ConstMatrix matrix() const 

ตัวดำเนินการ =

Tensor & operator=(
  const Tensor & other
)

ตัวดำเนินการกำหนดค่า เทนเซอร์นี้ใช้พื้นที่จัดเก็บข้อมูลร่วมกับเทนเซอร์อื่น

ตัวดำเนินการ =

Tensor & operator=(
  Tensor && other
)

ตัวดำเนินการเคลื่อนย้าย โปรดดูตัวสร้างการเคลื่อนย้ายสำหรับรายละเอียดเพิ่มเติม

ตีความมิติสุดท้ายใหม่

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

ส่งกลับข้อมูลเทนเซอร์ไปยัง Eigen::Tensor โดยแปลงองค์ประกอบมิติสุดท้ายให้เป็นองค์ประกอบเดี่ยวที่มีชนิดข้อมูลใหญ่กว่า

ตัวอย่างเช่น วิธีนี้มีประโยชน์สำหรับเคอร์เนลที่สามารถประมวลผลเทนเซอร์ NCHW_VECT_C int8 เป็นเทนเซอร์ NCHW int32 ได้ ขนาดของ T ควรเท่ากับขนาดของประเภทองค์ประกอบดั้งเดิม * จำนวนองค์ประกอบในมิติสุดท้ายดั้งเดิม NDIMS ควรน้อยกว่าจำนวนมิติเดิม 1

ตีความมิติสุดท้ายใหม่

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

ส่งกลับข้อมูลเทนเซอร์ไปยัง Eigen::Tensor โดยแปลงองค์ประกอบมิติสุดท้ายให้เป็นองค์ประกอบเดี่ยวที่มีชนิดข้อมูลขนาดใหญ่กว่า

ตัวอย่างเช่น วิธีนี้มีประโยชน์สำหรับเคอร์เนลที่สามารถประมวลผลเทนเซอร์ NCHW_VECT_C int8 เป็นเทนเซอร์ NCHW int32 ได้ ขนาดของ T ควรเท่ากับขนาดของประเภทองค์ประกอบดั้งเดิม * จำนวนองค์ประกอบในมิติสุดท้ายดั้งเดิม NDIMS ควรน้อยกว่าจำนวนมิติเดิม 1

สเกลาร์

TTypes< T >::Scalar scalar()

ส่งคืนข้อมูล Tensor ในรูปแบบ TensorMap ที่มีขนาดคงที่ 1: TensorMap > .

การใช้ scalar() ช่วยให้คอมไพเลอร์สามารถทำการปรับแต่งได้ เนื่องจากทราบขนาดของเทนเซอร์ในระหว่างการคอมไพล์

สเกลาร์

TTypes< T >::ConstScalar scalar() const 

รูปร่าง

const TensorShape & shape() const 

ส่งคืนรูปร่างของเทนเซอร์

รูปทรง

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

รูปทรง

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

เทนเซอร์

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

เทนเซอร์

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

เทนเซอร์_ดาต้า

StringPiece tensor_data() const 

ส่งคืนค่า StringPiece ที่แมปบัฟเฟอร์ของเทนเซอร์ปัจจุบัน

StringPiece ที่ส่งคืนมาอาจชี้ไปยังตำแหน่งหน่วยความจำบนอุปกรณ์ที่ CPU ไม่สามารถเข้าถึงได้โดยตรง

หมายเหตุ: บัฟเฟอร์เทนเซอร์พื้นฐานมีการนับจำนวนการอ้างอิง ดังนั้นอายุการใช้งานของเนื้อหาที่แมปโดย StringPiece จะตรงกับอายุการใช้งานของบัฟเฟอร์ ผู้เรียกควรจัดการเพื่อให้แน่ใจว่าบัฟเฟอร์จะไม่ถูกทำลายในขณะที่ StringPiece ยังคงถูกใช้งานอยู่

ต้องใช้: DataTypeCanUseMemcpy(dtype())

แบนที่ไม่จัดแนว

TTypes< T >::UnalignedFlat unaligned_flat()

แบนที่ไม่จัดแนว

TTypes< T >::UnalignedConstFlat unaligned_flat() const 

รูปร่างไม่ตรงแนว

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

รูปร่างไม่ตรงแนว

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

เวกเตอร์

TTypes< T >::Vec vec()

ส่งคืนข้อมูลเทนเซอร์ในรูปแบบ Eigen::Tensor โดยใช้ประเภทและขนาดของเทนเซอร์นี้

ใช้วิธีการเหล่านี้เมื่อคุณทราบชนิดข้อมูลและจำนวนมิติของ Tensor และต้องการให้ Eigen::Tensor มีขนาดเท่ากับขนาดของ Tensor โดยอัตโนมัติ การตรวจสอบการใช้งานจะล้มเหลวหากชนิดข้อมูลหรือขนาดไม่ตรงกัน

ตัวอย่าง:

  
    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 

เวอร์ชันคงที่ของวิธีการทั้งหมดข้างต้น

~เทนเซอร์

 ~Tensor()