เทนเซอร์โฟลว์::เทนเซอร์
#include <tensor.h>แสดงถึงอาร์เรย์ของค่าที่มีมิติ n
สรุป
ตัวสร้างและตัวทำลาย | |
|---|---|
Tensor () สร้างเทนเซอร์แบบ float 1 มิติ ที่มี 0 องค์ประกอบ | |
Tensor (DataType type, const TensorShape & 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 (T *t) | |
~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 | std::string สรุปข้อมูลเทนเซอร์ในรูปแบบที่มนุษย์อ่านได้ เหมาะสำหรับการแก้ไขข้อผิดพลาด |
DebugString () const | std::string |
DeviceSafeDebugString () const | std::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 อุปกรณ์เสริมที่สะดวกต่อการใช้งานสำหรับรูปทรงเทนเซอร์ |
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 | std::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 ที่ระบุ |
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 |
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) | Tensor & ตัวดำเนินการกำหนดค่า เทนเซอร์นี้ใช้พื้นที่จัดเก็บข้อมูลร่วมกับเทนเซอร์อื่น |
operator= ( Tensor && other) | Tensor & ตัวดำเนินการเคลื่อนย้าย โปรดดูตัวสร้างการเคลื่อนย้ายสำหรับรายละเอียดเพิ่มเติม |
reinterpret_last_dimension () | TTypes< T, NDIMS >:: Tensor ส่งกลับข้อมูลเทนเซอร์ไปยัง Eigen::Tensor โดยแปลงองค์ประกอบมิติสุดท้ายให้เป็นองค์ประกอบเดี่ยวที่มีชนิดข้อมูลขนาดใหญ่กว่า |
reinterpret_last_dimension () const | TTypes< T, NDIMS >::ConstTensor ส่งกลับข้อมูลเทนเซอร์ไปยัง Eigen::Tensor โดยแปลงองค์ประกอบมิติสุดท้ายให้เป็นองค์ประกอบเดี่ยวที่มีชนิดข้อมูลขนาดใหญ่กว่า |
scalar () | TTypes< T >::Scalar |
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 ที่กำหนดเท่ากัน
ดีบักสตริง
std::string DebugString( int num_values ) const
สรุปข้อมูลเทนเซอร์ในรูปแบบที่มนุษย์อ่านได้ เหมาะสำหรับการแก้ไขข้อผิดพลาด
ดีบักสตริง
std::string DebugString() const
DeviceSafeDebugString
std::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
อุปกรณ์เสริมที่สะดวกต่อการใช้งานสำหรับรูปทรงเทนเซอร์
RefCountIsOne
bool RefCountIsOne() 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 <= index < dim_size(0)
สรุปค่า
std::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( Tensor && other )
ย้ายคอนสตรัคเตอร์
หลังจากวางสายแล้ว
เทนเซอร์
Tensor( T *t )=delete
ไบต์ทั้งหมด
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 ได้
ข้อมูล
void * data() const
ขนาด
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()
ขนาดภายในแบบแบน
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()
ขนาดภายนอกแบบแบน
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()
สเกลาร์
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()