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

#include <tensor.h>

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

สรุป

ผู้สร้างและผู้ทำลาย

Tensor ()
สร้างโฟลทเทนเซอร์ 1 มิติ 0 องค์ประกอบ
Tensor (DataType type, const TensorShape & shape)
สร้าง Tensor ของ 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 และ "การจัดสรร _attr" ที่ระบุเพื่อจัดสรรบัฟเฟอร์
Tensor (DataType type, const TensorShape & shape, TensorBuffer *buf)
สร้างเทนเซอร์ด้วยประเภทข้อมูลอินพุตรูปร่างและ buf
Tensor (DataType type)
สร้าง 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)
ย้ายตัวสร้าง
~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
ส่งคืนค่าจริง iff นี้เทนเซอร์จัดแนว
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 แต่การตรวจสอบจะล้มเหลวหากไม่เป็นไปตามเงื่อนไขเบื้องต้นใด ๆ
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)
กำหนดตัวดำเนินการ เทนเซอร์นี้แชร์ที่เก็บข้อมูลพื้นฐานของผู้อื่น
operator= ( Tensor && other)
ย้ายตัวดำเนินการ ดูตัวสร้างการย้ายสำหรับรายละเอียด
reinterpret_last_dimension ()
TTypes< T, NDIMS >:: Tensor
ส่งคืนข้อมูลเทนเซอร์ไปยัง Eigen::Tensor ด้วยองค์ประกอบมิติสุดท้ายที่แปลงเป็นองค์ประกอบเดียวที่มีขนาดใหญ่กว่า
reinterpret_last_dimension () const
TTypes< T, NDIMS >::ConstTensor
ส่งคืนข้อมูลเทนเซอร์ไปยัง Eigen::Tensor ด้วยองค์ประกอบมิติสุดท้ายที่แปลงเป็นองค์ประกอบเดียวที่มีขนาดใหญ่กว่า
scalar ()
TTypes< T >::Scalar
ส่งคืนข้อมูล Tensor เป็น TensorMap ของขนาดคงที่ 1: TensorMap > 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 () ถูกส่งกลับตอนนี้ Tensors ทั้งสองจะใช้พื้นที่เก็บข้อมูลพื้นฐานเดียวกัน

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

โดยเฉพาะ:

shape.num_elements () * DataTypeSize (ชนิด)

ต้องเท่ากัน

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

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

  • DataTypeSize (other.dtype ())! = 0
  • DataTypeSize (ชนิด)! = 0

หากไม่ตรงตามข้อกำหนดข้อผิดพลาด :: InvalidArgument จะถูกส่งกลับ

CopyFrom

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 

FillDescription

void FillDescription(
  TensorDescription *description
) const 

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

จากโปรโต

bool FromProto(
  const TensorProto & other
) TF_MUST_USE_RESULT

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

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

จากโปรโต

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

IsAligned

bool IsAligned() const 

ส่งคืนค่าจริง iff นี้เทนเซอร์จัดแนว

IsInitialized

bool IsInitialized() const 

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

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

IsSameSize

bool IsSameSize(
  const Tensor & b
) const 

NumElements

06f4dded 30

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

หุ้นบัฟเฟอร์ด้วย

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)

SubSlice

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 องค์ประกอบ

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

Tensor(DT_FLOAT, TensorShape({}))

      

Tensor

 Tensor(
  DataType type,
  const TensorShape & shape
)

สร้าง Tensor ของ type และ shape กำหนด

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

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

เทนเซอร์

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

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

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

ต้องอายุยืนอายุการใช้งานนี้ Tensor

เทนเซอร์

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

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

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

ต้องอายุยืนอายุการใช้งานนี้ Tensor

เทนเซอร์

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

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

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

เทนเซอร์

 Tensor(
  DataType type
)

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

เช่นเดียวกับ เทนเซอร์ () ผลตอบแทน 1 มิติ, 0 องค์ประกอบ Tensor กับ IsInitialized () กลับมาทรู ดูรายละเอียดในเอกสาร 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 แต่การตรวจสอบจะล้มเหลวหากไม่เป็นไปตามเงื่อนไขเบื้องต้นใด ๆ

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

bit_casted_shaped

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

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

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

bit_casted_tensor

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

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

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

bit_casted_tensor

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

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

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

dim_size

int64 dim_size(
  int d
) const 

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

หรี่

int dims() const 

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

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

ประเภท

DataType dtype() const 

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

แบน

TTypes< T >::Flat flat()

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

วิธีการเหล่านี้ช่วยให้คุณเข้าถึงข้อมูลด้วยมิติข้อมูลและขนาดที่คุณเลือก คุณไม่จำเป็นต้องรู้จำนวนมิติของ 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 ยุบมิติ 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()

ส่งคืนข้อมูลเป็น Eigen :: Tensor ที่มีมิติข้อมูล NDIMS ยุบมิติ Tensor ทั้งหมด แต่ 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 tensors เป็น NCHW int32 tensors ขนาดของ (T) ควรเท่ากับขนาดขององค์ประกอบดั้งเดิมประเภท * องค์ประกอบ num ในมิติสุดท้ายเดิม NDIMS ควรน้อยกว่าจำนวนมิติเดิม 1

reinterpret_last_dimension

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

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

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

สเกลาร์

TTypes< T >::Scalar scalar()

ส่งคืนข้อมูล Tensor เป็น 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

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

vec

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(); // 2D Eigen::Tensor, 3 x 5.
    auto vec = my_mat.vec();       // CHECK fails as my_mat is 2D.
    auto vec = my_mat.tensor(); // 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()