เทนเซอร์โฟลว์:: เทนเซอร์
#include <tensor.h>
แสดงถึงอาร์เรย์ n มิติของค่า
สรุป
ตัวสร้างและผู้ทำลาย | |
---|---|
Tensor () สร้างเทนเซอร์โฟลต 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) สร้างเทนเซอร์ที่มีประเภทข้อมูล รูปร่าง และ 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 ด้วยข้อมูลเมตาเกี่ยวกับเทนเซอร์ที่มีประโยชน์สำหรับการตรวจสอบและการแก้ไขข้อบกพร่อง |
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 หากจำเป็น Tensor นี้ได้รับการเตรียมใช้งานแล้วหรือไม่ |
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 ที่มีขนาดเท่ากัน แต่ส่งค่าบิตไปยัง 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 โดยยุบมิติ Tensor 'เริ่มต้น' แรกไปเป็นมิติแรกของผลลัพธ์และมิติ 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) | 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 เวอร์ชัน 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
BitcastFrom
Status BitcastFrom( const Tensor & other, DataType dtype, const TensorShape & shape )
คัดลอกเทนเซอร์ตัวอื่นลงในเทนเซอร์นี้ ปรับรูปร่างใหม่ และตีความประเภทข้อมูลของบัฟเฟอร์ใหม่
หากส่งคืน Status::OK() แสดงว่าเทนเซอร์สองตัวแชร์ที่เก็บข้อมูลพื้นฐานเดียวกัน
การเรียกนี้ต้องการให้เทนเซอร์ other
และประเภทและรูปร่างที่กำหนดนั้น "เข้ากันได้" (กล่าวคือ พวกมันใช้จำนวนไบต์เท่ากัน)
โดยเฉพาะ:
รูปร่าง 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
if other.shape()
มีจำนวนองค์ประกอบของ shape
ที่กำหนดเท่ากัน
DebugString
std::string DebugString( int num_values ) const
ข้อมูลสรุปเทนเซอร์ที่มนุษย์อ่านได้ซึ่งเหมาะสำหรับการดีบัก
DebugString
std::string DebugString() const
DeviceSafeDebugString
std::string DeviceSafeDebugString() const
กรอกคำอธิบาย
void FillDescription( TensorDescription *description ) const
กรอกโปรโต TensorDescription
ด้วยข้อมูลเมตาเกี่ยวกับเทนเซอร์ที่มีประโยชน์สำหรับการตรวจสอบและการแก้ไขข้อบกพร่อง
จากโปรโต
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
หากจำเป็น Tensor นี้ได้รับการเตรียมใช้งานแล้วหรือไม่
เทนเซอร์แบบไม่มีองค์ประกอบจะถือว่าเริ่มต้นได้เสมอ แม้ว่าจะไม่เคยถูกกำหนดให้และไม่มีการจัดสรรหน่วยความจำก็ตาม
มีขนาดเดียวกัน
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 เช่นกัน หากคุณต้องการเลือกเทนเซอร์ย่อย โปรดดูที่ 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()
สร้างเทนเซอร์โฟลต 1 มิติ 0 องค์ประกอบ
เทนเซอร์ ที่ส่งคืนไม่ใช่สเกลาร์ (รูปร่าง {}) แต่เป็น เทนเซอร์ มิติเดียวที่ว่างเปล่าแทน (รูปร่าง {0}, NumElements() == 0) เนื่องจากไม่มีองค์ประกอบ จึงไม่จำเป็นต้องกำหนดค่าและกำหนดค่าเริ่มต้นตามค่าเริ่มต้น ( IsInitialized() เป็นจริง) หากเป็นสิ่งที่ไม่พึงประสงค์ ให้พิจารณาสร้างสเกลาร์องค์ประกอบเดียวซึ่งจำเป็นต้องมีการกำหนดค่าเริ่มต้น:
Tensor(DT_FLOAT, TensorShape({}))
Tensor
Tensor( DataType type, const TensorShape & shape )
สร้าง เทนเซอร์ ตาม type
และ shape
ที่กำหนด
หาก LogMemory::IsEnabled() การจัดสรรจะถูกบันทึกว่ามาจากเคอร์เนลและขั้นตอนที่ไม่รู้จัก การเรียกตัวสร้าง Tensor โดยตรงจากภายใน Op นั้นเลิกใช้แล้ว: ใช้วิธี OpKernelConstruction/OpKernelContext allowance_* เพื่อจัดสรรเทนเซอร์ใหม่ ซึ่งจะบันทึกเคอร์เนลและขั้นตอน
บัฟเฟอร์พื้นฐานได้รับการจัดสรรโดยใช้ CPUAllocator
เทนเซอร์
Tensor( Allocator *a, DataType type, const TensorShape & shape )
สร้างเทนเซอร์ที่มี type
อินพุตและ shape
โดยใช้ตัวจัดสรร a
เพื่อจัดสรรบัฟเฟอร์พื้นฐาน
หาก LogMemory::IsEnabled() การจัดสรรจะถูกบันทึกว่ามาจากเคอร์เนลและขั้นตอนที่ไม่รู้จัก การเรียกตัวสร้าง Tensor โดยตรงจากภายใน Op นั้นเลิกใช้แล้ว: ใช้วิธี OpKernelConstruction/OpKernelContext allowance_* เพื่อจัดสรรเทนเซอร์ใหม่ ซึ่งจะบันทึกเคอร์เนลและขั้นตอน
a
มีอายุการใช้งานยาวนานกว่าอายุการใช้งานของ Tensor นี้
เทนเซอร์
Tensor( Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr )
สร้างเทนเซอร์ที่มี type
อินพุตและ shape
โดยใช้ตัวจัดสรร a
และ "allocation_attr" ที่ระบุเพื่อจัดสรรบัฟเฟอร์พื้นฐาน
หากทราบเคอร์เนลและขั้นตอน allocation_attr.allocation_will_be_logged ควรตั้งค่าเป็นจริงและ LogMemory::RecordTensorAllocation ควรถูกเรียกหลังจากสร้างเมตริกซ์แล้ว การเรียกตัวสร้าง Tensor โดยตรงจากภายใน Op นั้นเลิกใช้แล้ว: ใช้วิธี OpKernelConstruction/OpKernelContext allowance_* เพื่อจัดสรรเทนเซอร์ใหม่ ซึ่งจะบันทึกเคอร์เนลและขั้นตอน
a
มีอายุการใช้งานยาวนานกว่าอายุการใช้งานของ Tensor นี้
เทนเซอร์
Tensor( DataType type, const TensorShape & shape, TensorBuffer *buf )
สร้างเทนเซอร์ที่มีประเภทข้อมูล รูปร่าง และ buf อินพุต
ได้รับการอ้างอิง buf ที่เป็นของ Tensor นี้
เทนเซอร์
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
ส่งคืนการใช้งานหน่วยความจำโดยประมาณของเทนเซอร์นี้
ไม่ปลอดภัย CopyFromInternal
void UnsafeCopyFromInternal( const Tensor & other, DataType dtype, const TensorShape & shape )
เช่นเดียวกับ BitcastFrom แต่ CHECK จะล้มเหลวหากไม่ตรงตามเงื่อนไขเบื้องต้น
เลิกใช้แล้ว ใช้ BitcastFrom แทนและตรวจสอบสถานะที่ส่งคืน
bit_casted_รูป
TTypes< T, NDIMS >::Tensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes )
ส่งคืนข้อมูลเทนเซอร์ไปยัง Eigen::Tensor
ด้วยรูปร่างใหม่ที่ระบุใน new_sizes
และส่งไปยัง dtype T
ใหม่
การใช้บิตคาสต์มีประโยชน์สำหรับการย้ายและคัดลอก บิตคาสต์ที่อนุญาตนั้นแตกต่างเพียงอย่างเดียวจาก shaped()
bit_casted_รูป
TTypes< T, NDIMS >::ConstTensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes ) const
ส่งคืนข้อมูลเทนเซอร์ไปยัง Eigen::Tensor
ด้วยรูปร่างใหม่ที่ระบุใน new_sizes
และส่งไปยัง dtype T
ใหม่
การใช้บิตคาสต์มีประโยชน์สำหรับการย้ายและคัดลอก บิตคาสต์ที่อนุญาตนั้นแตกต่างเพียงอย่างเดียวจาก 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
ประเภท
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
flat_inner_dims
TTypes< T, NDIMS >::Tensor flat_inner_dims()
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 โดยยุบมิติ Tensor 'เริ่มต้น' แรกไปเป็นมิติแรกของผลลัพธ์และมิติ Tensor ของ dims สุดท้าย () - 'begin' - NDIMS ลงในมิติสุดท้ายของ ผลลัพธ์.
ถ้า 'begin' < 0 แสดงว่า |'begin'| จะมีการเพิ่มมิตินำหน้าขนาด 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()
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 )
ย้ายตัวดำเนินการ ดูตัวสร้างการย้ายสำหรับรายละเอียด
ตีความ_last_มิติใหม่อีกครั้ง
TTypes< T, NDIMS >::Tensor reinterpret_last_dimension()
ส่งคืนข้อมูลเทนเซอร์ไปยัง Eigen::Tensor
โดยที่องค์ประกอบมิติสุดท้ายถูกแปลงเป็นองค์ประกอบเดี่ยวประเภทที่ใหญ่กว่า
ตัวอย่างเช่น สิ่งนี้มีประโยชน์สำหรับเคอร์เนลที่สามารถถือว่าเทนเซอร์ NCHW_VECT_C int8 เป็นเทนเซอร์ NCHW int32 ขนาดของ (T) ควรเท่ากับขนาดขององค์ประกอบดั้งเดิมประเภท * num องค์ประกอบในมิติสุดท้ายดั้งเดิม NDIMS ควรน้อยกว่าจำนวนมิติข้อมูลเดิม 1
ตีความ_last_มิติใหม่อีกครั้ง
TTypes< T, NDIMS >::ConstTensor reinterpret_last_dimension() const
ส่งคืนข้อมูลเทนเซอร์ไปยัง Eigen::Tensor
โดยที่องค์ประกอบมิติสุดท้ายถูกแปลงเป็นองค์ประกอบเดี่ยวประเภทที่ใหญ่กว่า
ตัวอย่างเช่น สิ่งนี้มีประโยชน์สำหรับเคอร์เนลที่สามารถถือว่าเทนเซอร์ NCHW_VECT_C int8 เป็นเทนเซอร์ NCHW int32 ขนาดของ (T) ควรเท่ากับขนาดขององค์ประกอบดั้งเดิมประเภท * num องค์ประกอบในมิติสุดท้ายดั้งเดิม 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
tensor_data
StringPiece tensor_data() const
ส่งคืนการแมป String Piece ที่บัฟเฟอร์ของเทนเซอร์ปัจจุบัน
String Piece ที่ส่งคืนอาจชี้ไปที่ตำแหน่งหน่วยความจำบนอุปกรณ์ที่ CPU ไม่สามารถระบุที่อยู่ได้โดยตรง
หมายเหตุ: เทนเซอร์บัฟเฟอร์พื้นฐานจะถูกนับใหม่ ดังนั้นอายุการใช้งานของเนื้อหาที่แมปโดย String Piece จะตรงกับอายุการใช้งานของบัฟเฟอร์ ผู้โทรควรจัดเตรียมเพื่อให้แน่ใจว่าบัฟเฟอร์ไม่ถูกทำลายในขณะที่ String Piece ยังคงใช้งานอยู่
ต้องการ: DataTypeCanUseMemcpy(dtype())
ไม่จัดแนว_flat
TTypes< T >::UnalignedFlat unaligned_flat()
ไม่จัดแนว_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 นี้
ใช้วิธีการเหล่านี้เมื่อคุณทราบประเภทข้อมูลและจำนวนขนาดของ 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
เวอร์ชัน Const ของวิธีการทั้งหมดข้างต้น
~เทนเซอร์
~Tensor()