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

#include <tensor.h>

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

สรุป

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

Tensor ()
สร้างเทนเซอร์ลอยตัว 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)
Status
คัดลอกเทนเซอร์อีกตัวหนึ่งลงในเทนเซอร์นี้ ปรับรูปร่างใหม่และตีความประเภทข้อมูลของบัฟเฟอร์ใหม่
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 ด้วยข้อมูลเมตาเกี่ยวกับเทนเซอร์ที่เป็นประโยชน์สำหรับการตรวจสอบและการดีบัก
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
อุปกรณ์อำนวยความสะดวกสำหรับรูปร่างเทนเซอร์
RefCountIsOne () const
bool
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 ที่มีขนาดเท่ากันแต่ส่งค่าบิตไปยัง dtype T ที่ระบุ
bit_casted_tensor () const
TTypes< T, NDIMS >::ConstTensor
ส่งคืนข้อมูลเทนเซอร์ไปยัง Eigen::Tensor ที่มีขนาดเท่ากันแต่ส่งค่าบิตไปยัง dtype T ที่ระบุ
data () const
void *
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 โดยยุบ 'เริ่มต้น' มิติข้อมูล เทนเซอร์ แรกเป็นมิติแรกของผลลัพธ์และมิติ เทนเซอร์ ของมิติสุดท้าย () - 'เริ่มต้น' - NDIMS เป็นมิติสุดท้ายของ ผลลัพธ์.
flat_inner_outer_dims (int64 begin) const
TTypes< T, NDIMS >::ConstTensor
flat_outer_dims ()
TTypes< T, NDIMS >:: Tensor
ส่งคืนข้อมูลเป็น Eigen::Tensor ที่มีมิติ NDIMS โดยจะยุบมิติ เทนเซอร์ ทั้งหมด แต่ 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
ส่งคืนข้อมูล เทนเซอร์ เป็น TensorMap ที่มีขนาดคงที่ 1: TensorMap > 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
เวอร์ชัน Const ของวิธีการทั้งหมดข้างต้น

งานสาธารณะ

จัดสรรไบต์

size_t AllocatedBytes() const 

AsProtoField

void AsProtoField(
  TensorProto *proto
) const 

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

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

AsProtoTensorContent

void AsProtoTensorContent(
  TensorProto *proto
) const 

Bitcastจาก

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

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

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

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

โดยเฉพาะ:

shape.num_elements() * DataTypeSize(ประเภท)

ต้องเท่ากัน

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

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

  • DataTypeSize(other.dtype()) != 0
  • DataTypeSize(ประเภท) != 0

หากไม่เป็นไปตามข้อกำหนด ข้อผิดพลาด::InvalidArgument จะถูกส่งคืน

คัดลอกจาก

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

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

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

DebugString

string DebugString(
  int num_values
) const 

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

DebugString

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 จะไม่เปลี่ยนแปลง

จากProto

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

IsAligned

bool IsAligned() const 

ส่งกลับค่าจริงถ้าเทนเซอร์นี้อยู่ในแนวเดียวกัน

เป็นค่าเริ่มต้น

bool IsInitialized() const 

หากจำเป็น เซ็นเซอร์ นี้ได้รับการเตรียมข้อมูลเบื้องต้นแล้วหรือไม่

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

IsSameSize

bool IsSameSize(
  const Tensor & b
) const 

NumElements

int64 NumElements() const 

อุปกรณ์อำนวยความสะดวกสำหรับรูปร่างเทนเซอร์

RefCountIsOne

bool RefCountIsOne() const 

แชร์บัฟเฟอร์ด้วย

bool SharesBufferWith(
  const Tensor & b
) const 

ชิ้น

Tensor Slice(
  int64 dim0_start,
  int64 dim0_limit
) const 

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

กล่าวคือ เทนเซอร์ที่ส่งคืนกลับมาตอบสนอง[i, ...] == this[dim0_start + i, ...] เทนเซอร์ที่ส่งคืนแบ่งปันบัฟเฟอร์เทนเซอร์พื้นฐานกับเทนเซอร์นี้

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

หมายเหตุ: เมื่อป้อนด้วยเทนเซอร์แบบ N วิธีนี้จะส่งกลับเมตริกซ์ที่มีมิติ N ด้วย หากคุณต้องการเลือก sub tensor โปรดดูที่ 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 <= index < dim_size(0)

สรุปมูลค่า

string SummarizeValue(
  int64 max_entries,
  bool print_v2
) const 

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

เทนเซอร์

 Tensor()

สร้างเทนเซอร์ลอยตัว 1 มิติ 0 องค์ประกอบ

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

Tensor(DT_FLOAT, TensorShape({}))

      

Tensor

 Tensor(
  DataType type,
  const TensorShape & shape
)

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

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

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

เทนเซอร์

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

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

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

ต้องอยู่ 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 เลิกใช้แล้ว: ใช้เมธอด OpKernelConstruction/OpKernelContext allocate_* เพื่อจัดสรรเทนเซอร์ใหม่ ซึ่งบันทึกเคอร์เนลและขั้นตอน

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

เทนเซอร์

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

สร้างเทนเซอร์ด้วยอินพุตประเภทข้อมูล รูปร่าง และบัฟ

ได้รับการอ้างอิง buf ที่เป็นของ เทนเซอร์ นี้

เทนเซอร์

 Tensor(
  DataType type
)

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

เช่นเดียวกับ Tensor() ส่งคืน เทนเซอร์ 0 องค์ประกอบ 1 มิติโดย 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
)

ย้ายตัวสร้าง

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

TotalBytes

size_t TotalBytes() const 

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

UnsafeCopyFromInternal

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

เช่นเดียวกับ BitcastFrom แต่ CHECK จะล้มเหลวหากไม่เป็นไปตามเงื่อนไขเบื้องต้น

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

bit_casted_shaped

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

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

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

bit_casted_shaped

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

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

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

bit_casted_tensor

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

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

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

bit_casted_tensor

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

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

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

ข้อมูล

void * data() const 

dim_size

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

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

หาก NDIMS > dims() มิติชั้นนำของขนาด 1 จะถูกเพิ่มเพื่อทำให้อันดับเอาต์พุตเป็น 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
)

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

หาก 'เริ่มต้น' < 0 แสดงว่า | 'เริ่มต้น' | จะเพิ่มมิติชั้นนำของขนาด 1 หาก 'begin' + NDIMS > dims() แล้ว 'begin' + NDIMS - dims() ขนาดต่อท้ายขนาด 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()

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

หาก NDIMS > dims() ขนาดต่อท้ายขนาด 1 จะถูกเพิ่มเพื่อทำให้อันดับเอาต์พุตเป็น NDIMS

flat_outer_dims

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
)

ย้ายโอเปอเรเตอร์ ดูย้ายคอนสตรัคเตอร์สำหรับรายละเอียด

reinterpret_last_dimension

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

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

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

reinterpret_last_dimension

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

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

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

สเกลาร์

TTypes< T >::Scalar scalar()

ส่งคืนข้อมูล เทนเซอร์ เป็น TensorMap ที่มีขนาดคงที่ 1: TensorMap > 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 

tensor_data

StringPiece tensor_data() const 

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

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

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

ต้องการ: 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

l10n-placeholder89

vec

l10n-placeholder90

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

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

ตัวอย่าง:

l10n-placeholder91

l10n-ตัวยึดตำแหน่ง92

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

~เทนเซอร์

l10n-placeholder93
,

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

#include <tensor.h>

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

สรุป

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

เทนเซอร์ ()
สร้างเทนเซอร์ลอยตัว 1 มิติ 0 องค์ประกอบ
เทนเซอร์ (ประเภทประเภทข้อมูล, คอนเทนต์ TensorShape & รูปร่าง)
สร้างเทนเซอร์ของประเภทและรูปร่างที่กำหนด
เทนเซอร์ (Allocator *a, ประเภท DataType, const TensorShape & รูปร่าง)
สร้างเทนเซอร์ที่มีประเภทและรูปร่างอินพุต โดยใช้ตัวจัดสรร a เพื่อจัดสรรบัฟเฟอร์พื้นฐาน
เทนเซอร์ (Allocator *a, ประเภท DataType, const TensorShape & รูปร่าง, const AllocationAttributes & allocation_attr)
สร้างเทนเซอร์ที่มีประเภทและรูปร่างอินพุต โดยใช้ตัวจัดสรร a และ "allocation_attr" ที่ระบุเพื่อจัดสรรบัฟเฟอร์พื้นฐาน
Tensor (ประเภท DataType, const TensorShape & รูปร่าง, TensorBuffer *buf)
สร้างเทนเซอร์ด้วยอินพุตประเภทข้อมูล รูปร่าง และบัฟ
เทนเซอร์ (ประเภทข้อมูล)
สร้างเทนเซอร์ว่างของชนิดข้อมูลที่กำหนด
เทนเซอร์ (float scalar_value)
เทนเซอร์ (สเกลาร์คู่_value)
เทนเซอร์ (int32 scalar_value)
เทนเซอร์ (uint32 scalar_value)
เทนเซอร์ (uint16 scalar_value)
เทนเซอร์ (uint8 scalar_value)
เทนเซอร์ (int16 scalar_value)
เทนเซอร์ (int8 scalar_value)
เทนเซอร์ (tstring scalar_value)
เทนเซอร์ (complex64 scalar_value)
เทนเซอร์ (complex128 scalar_value)
เทนเซอร์ (int64 scalar_value)
เทนเซอร์ (uint64 scalar_value)
เทนเซอร์ (บูล scalar_value)
เทนเซอร์ (qint8 scalar_value)
เทนเซอร์ (quint8 scalar_value)
เทนเซอร์ (qint16 scalar_value)
เทนเซอร์ (quint16 scalar_value)
เทนเซอร์ (qint32 scalar_value)
เทนเซอร์ (bfloat16 scalar_value)
เทนเซอร์ (Eigen::half scalar_value)
เทนเซอร์ (ResourceHandle scalar_value)
เทนเซอร์ (const char *scalar_value)
เทนเซอร์ (const เทนเซอร์และอื่น ๆ )
คัดลอกตัวสร้าง
เทนเซอร์ ( เทนเซอร์ && อื่นๆ)
ย้ายตัวสร้าง
~เทนเซอร์ ()

งานสาธารณะ

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

งานสาธารณะ

จัดสรรไบต์

l10n-placeholder1

AsProtoField

l10n-placeholder2

เติมโปรโตด้วย *เนื้อหาของเทนเซอร์นี้

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

AsProtoTensorContent

l10n-placeholder3

Bitcastจาก

l10n-placeholder4

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

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

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

โดยเฉพาะ:

shape.num_elements() * DataTypeSize(ประเภท)

ต้องเท่ากัน

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

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

  • DataTypeSize(other.dtype()) != 0
  • DataTypeSize(ประเภท) != 0

หากไม่เป็นไปตามข้อกำหนด ข้อผิดพลาด::InvalidArgument จะถูกส่งคืน

คัดลอกจาก

l10n-placeholder5

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

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

DebugString

l10n-placeholder6

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

DebugString

l10n-placeholder7

DeviceSafeDebugString

l10n-placeholder8

กรอกคำอธิบาย

l10n-placeholder9

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

จากProto

l10n-placeholder10

แยกวิเคราะห์อื่นๆ และสร้างเมตริกซ์

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

จากProto

l10n-placeholder11

IsAligned

l10n-placeholder12

ส่งกลับค่าจริงถ้าเทนเซอร์นี้อยู่ในแนวเดียวกัน

เป็นค่าเริ่มต้น

l10n-placeholder13

หากจำเป็น เซ็นเซอร์นี้ได้รับการเตรียมข้อมูลเบื้องต้นแล้วหรือไม่

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

IsSameSize

l10n-placeholder14

NumElements

l10n-placeholder15

อุปกรณ์เสริมสำหรับรูปร่างเทนเซอร์

RefCountIsOne

l10n-placeholder16

แชร์บัฟเฟอร์ด้วย

l10n-placeholder17

ชิ้น

l10n-placeholder18

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

กล่าวคือ เทนเซอร์ที่ส่งคืนกลับมาตอบสนอง[i, ...] == this[dim0_start + i, ...] เทนเซอร์ที่ส่งคืนแบ่งปันบัฟเฟอร์เทนเซอร์พื้นฐานกับเทนเซอร์นี้

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

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

ต้องการ: dims() >= 1 ต้องการ: 0 <= dim0_start <= dim0_limit <= dim_size(0)

ชิ้นย่อย

l10n-placeholder19

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

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

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

ต้องการ: dims() >= 1 ต้องการ: 0 <= ดัชนี < dim_size(0)

สรุปมูลค่า

l10n-ตัวยึดตำแหน่ง20

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

เทนเซอร์

l10n-placeholder21

สร้างเทนเซอร์ลอยตัว 1 มิติ 0 องค์ประกอบ

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

l10n-placeholder22

l10n-placeholder23

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

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

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

เทนเซอร์

l10n-placeholder24

สร้างเทนเซอร์ที่มีประเภทและรูปร่างอินพุต โดยใช้ตัวจัดสรร a เพื่อจัดสรรบัฟเฟอร์พื้นฐาน

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

ต้องอยู่ได้นานกว่าอายุของเทนเซอร์นี้

เทนเซอร์

l10n-placeholder25

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

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

ต้องอยู่ได้นานกว่าอายุของเทนเซอร์นี้

เทนเซอร์

l10n-placeholder26

สร้างเทนเซอร์ด้วยอินพุตประเภทข้อมูล รูปร่าง และบัฟ

ได้รับการอ้างอิง buf ที่เป็นของเทนเซอร์นี้

เทนเซอร์

l10n-placeholder27

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

เช่นเดียวกับ Tensor() ส่งคืนเทนเซอร์ 0 องค์ประกอบ 1 มิติโดย IsInitialized() คืนค่า True ดูเอกสาร Tensor() สำหรับรายละเอียด

เทนเซอร์

l10n-placeholder28

เทนเซอร์

l10n-placeholder29

เทนเซอร์

l10n-placeholder30

เทนเซอร์

l10n-placeholder31

เทนเซอร์

l10n-ตัวยึดตำแหน่ง32

เทนเซอร์

l10n-placeholder33

เทนเซอร์

l10n-placeholder34

เทนเซอร์

l10n-ตัวยึดตำแหน่ง35

เทนเซอร์

l10n-placeholder36

เทนเซอร์

l10n-placeholder37

เทนเซอร์

l10n-ตัวยึดตำแหน่ง38

เทนเซอร์

l10n-placeholder39

เทนเซอร์

l10n-ตัวยึดตำแหน่ง40

เทนเซอร์

l10n-placeholder41

เทนเซอร์

l10n-ตัวยึดตำแหน่ง42

เทนเซอร์

l10n-placeholder43

เทนเซอร์

l10n-placeholder44

เทนเซอร์

l10n-ตัวยึดตำแหน่ง45

เทนเซอร์

l10n-placeholder46

เทนเซอร์

l10n-placeholder47

เทนเซอร์

l10n-placeholder48

เทนเซอร์

l10n-placeholder49

เทนเซอร์

l10n-placeholder50

เทนเซอร์

l10n-placeholder51

คัดลอกตัวสร้าง

เทนเซอร์

l10n-ตัวยึดตำแหน่ง52

ย้ายตัวสร้าง

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

TotalBytes

l10n-ตัวยึดตำแหน่ง53

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

UnsafeCopyFromInternal

l10n-placeholder54

เช่นเดียวกับ BitcastFrom แต่ CHECK จะล้มเหลวหากไม่เป็นไปตามเงื่อนไขเบื้องต้น

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

bit_casted_shaped

l10n-ตัวยึดตำแหน่ง55

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

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

bit_casted_shaped

l10n-placeholder56

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

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

bit_casted_tensor

l10n-placeholder57

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

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

bit_casted_tensor

l10n-placeholder58

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

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

ข้อมูล

l10n-placeholder59

dim_size

l10n-ตัวยึดตำแหน่ง60

อุปกรณ์เสริมสำหรับรูปร่างเทนเซอร์

ติ่มซำ

l10n-ตัวยึดตำแหน่ง61

อุปกรณ์เสริมสำหรับรูปร่างเทนเซอร์

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

dtype

l10n-ตัวยึดตำแหน่ง62

ส่งกลับชนิดข้อมูล

แบน

l10n-placeholder63

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

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

ตัวอย่าง:

l10n-placeholder64

l10n-placeholder65

flat_inner_dims

l10n-placeholder66

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

หาก NDIMS > dims() มิติชั้นนำของขนาด 1 จะถูกเพิ่มเพื่อทำให้อันดับเอาต์พุตเป็น NDIMS

flat_inner_dims

l10n-placeholder67

flat_inner_outer_dims

l10n-placeholder68

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

หาก 'เริ่มต้น' < 0 แสดงว่า | 'เริ่มต้น' | จะเพิ่มมิติชั้นนำของขนาด 1 หาก 'begin' + NDIMS > dims() แล้ว 'begin' + NDIMS - dims() ขนาดต่อท้ายขนาด 1 จะถูกเพิ่มเข้าไป

flat_inner_outer_dims

l10n-placeholder69

flat_outer_dims

l10n-placeholder70

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

หาก NDIMS > dims() ขนาดต่อท้ายขนาด 1 จะถูกเพิ่มเพื่อทำให้อันดับเอาต์พุตเป็น NDIMS

flat_outer_dims

l10n-placeholder71

เมทริกซ์

l10n-placeholder72

เมทริกซ์

l10n-ตัวยึดตำแหน่ง73

โอเปอเรเตอร์=

l10n-placeholder74

กำหนดโอเปอเรเตอร์ เมตริกซ์นี้ใช้ที่เก็บข้อมูลพื้นฐานของผู้อื่น

โอเปอเรเตอร์=

l10n-placeholder75

ย้ายโอเปอเรเตอร์ ดูย้ายคอนสตรัคเตอร์สำหรับรายละเอียด

reinterpret_last_dimension

l10n-placeholder76

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

For example, this is useful for kernels that can treat NCHW_VECT_C int8 tensors as NCHW int32 tensors. The sizeof(T) should equal the size of the original element type * num elements in the original last dimension. NDIMS should be 1 less than the original number of dimensions.

reinterpret_last_dimension

l10n-placeholder77

Return the tensor data to an Eigen::Tensor with the last dimension elements converted into single elements of a larger type.

For example, this is useful for kernels that can treat NCHW_VECT_C int8 tensors as NCHW int32 tensors. The sizeof(T) should equal the size of the original element type * num elements in the original last dimension. NDIMS should be 1 less than the original number of dimensions.

scalar

l10n-placeholder78

Return the Tensor data as a TensorMap of fixed size 1: TensorMap > .

Using scalar() allows the compiler to perform optimizations as the size of the tensor is known at compile time.

scalar

l10n-placeholder79

shape

l10n-placeholder80

Returns the shape of the tensor.

shaped

l10n-placeholder81

shaped

l10n-placeholder82

tensor

l10n-placeholder83

tensor

l10n-placeholder84

tensor_data

l10n-placeholder85

Returns a StringPiece mapping the current tensor's buffer.

The returned StringPiece may point to memory location on devices that the CPU cannot address directly.

NOTE: The underlying tensor buffer is refcounted, so the lifetime of the contents mapped by the StringPiece matches the lifetime of the buffer; callers should arrange to make sure the buffer does not get destroyed while the StringPiece is still used.

REQUIRES: DataTypeCanUseMemcpy(dtype()) .

unaligned_flat

l10n-placeholder86

unaligned_flat

l10n-placeholder87

unaligned_shaped

l10n-placeholder88

unaligned_shaped

l10n-placeholder89

vec

l10n-placeholder90

Return the tensor data as an Eigen::Tensor with the type and sizes of this Tensor .

Use these methods when you know the data type and the number of dimensions of the Tensor and you want an Eigen::Tensor automatically sized to the Tensor sizes. The implementation check fails if either type or sizes mismatch.

Example:

l10n-placeholder91

l10n-placeholder92

Const versions of all the methods above.

~Tensor

l10n-placeholder93