เทนเซอร์โฟลว์:: เทนเซอร์
#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 () |
งานสาธารณะ | |
---|---|
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 ด้วยข้อมูลเมตาเกี่ยวกับเทนเซอร์ที่มีประโยชน์สำหรับการตรวจสอบและการแก้ไขข้อบกพร่อง |
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 อุปกรณ์เสริมที่สะดวกสำหรับรูปทรงเทนเซอร์ |
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 ที่ระบุ |
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
string DebugString(
int num_values
) const
ข้อมูลสรุปเทนเซอร์ที่มนุษย์อ่านได้ซึ่งเหมาะสำหรับการดีบัก
DebugString
string DebugString() const
DeviceSafeDebugString
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
อุปกรณ์เสริมที่สะดวกสำหรับรูปทรงเทนเซอร์
แบ่งปันบัฟเฟอร์ด้วย
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 <= dim0_start < 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() การจัดสรรจะถูกบันทึกว่ามาจากเคอร์เนลและขั้นตอนที่ไม่รู้จัก การเรียกตัวสร้าง 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
)
ย้ายตัวสร้าง
หลังจากการโทรนี้
จำนวนไบต์ทั้งหมด
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()
ยกเว้นบิตคาสต์ที่ได้รับอนุญาต
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
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
ส่งคืนการแมป StringPiece
ที่บัฟเฟอร์ของเทนเซอร์ปัจจุบัน
StringPiece
ที่ส่งคืนอาจชี้ไปที่ตำแหน่งหน่วยความจำบนอุปกรณ์ที่ CPU ไม่สามารถระบุที่อยู่ได้โดยตรง
หมายเหตุ: เทนเซอร์บัฟเฟอร์พื้นฐานจะถูกนับใหม่ ดังนั้นอายุการใช้งานของเนื้อหาที่แมปโดย StringPiece
จะตรงกับอายุการใช้งานของบัฟเฟอร์ ผู้โทรควรจัดเตรียมเพื่อให้แน่ใจว่าบัฟเฟอร์ไม่ถูกทำลายในขณะที่ StringPiece
ยังคงใช้งานอยู่
ต้องการ: 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
vec
TTypes< T >::ConstVec vec() const
เวอร์ชัน Const ของวิธีการทั้งหมดข้างต้น
~เทนเซอร์
~Tensor()