تدفق التوتر:: الموتر

#include <tensor.h>

يمثل مصفوفة ذات أبعاد n من القيم.

ملخص

البنائين والمدمرين

Tensor ()
ينشئ موترًا عائمًا أحادي البعد مكونًا من 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)
ينشئ موترًا باستخدام نوع بيانات الإدخال والشكل و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 (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
قم بتقطيع هذا الموتر على طول البعد الأول.
SubSlice (int64 index) const
حدد شريحة فرعية من هذا الموتر على طول البعد الأول.
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، ولكن يفشل التحقق في حالة عدم استيفاء أي شروط مسبقة.
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)
تعيين المشغل. يشارك هذا الموتر التخزين الأساسي للآخرين.
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 

BitcastFrom

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

انسخ الموتر الآخر إلى هذا الموتر، وأعد تشكيله وأعد تفسير نوع بيانات المخزن المؤقت.

إذا تم إرجاع الحالة::OK()، فإن الموترين يشتركان الآن في نفس وحدة التخزين الأساسية.

يتطلب هذا الاستدعاء أن يكون الموتر other والنوع والشكل المحددان "متوافقين" (أي يشغلان نفس عدد البايتات).

خاصة:

Shape.num_elements() * DataTypeSize(type)

يجب أن يساوي

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

بالإضافة إلى ذلك، تتطلب هذه الوظيفة ما يلي:

  • DataTypeSize(other.dtype()) != 0
  • DataTypeSize(type) != 0

إذا لم يتم استيفاء أي من المتطلبات، فسيتم إرجاع الأخطاء::InvalidArgument.

نسخ من

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

انسخ الموتر الآخر في هذا الموتر وأعد تشكيله.

يشارك هذا الموتر التخزين الأساسي للآخرين. تُرجع true إذا كان 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

IsAligned

bool IsAligned() const 

يُرجع صحيحًا إذا تمت محاذاة هذا الموتر.

تمت التهيئة

bool IsInitialized() const 

إذا لزم الأمر، هل تم تهيئة هذا Tensor ؟

تعتبر Tensors ذات العنصر الصفري دائمًا مهيأة، حتى لو لم يتم تعيينها مطلقًا ولم يتم تخصيص أي ذاكرة لها.

IsSameSize

bool IsSameSize(
  const Tensor & b
) const 

NumElements

int64 NumElements() const 

ملحق مريح لشكل الموتر.

RefCountIsOne

bool RefCountIsOne() const 

SharesBufferWith

bool SharesBufferWith(
  const Tensor & b
) const 

شريحة

Tensor Slice(
  int64 dim0_start,
  int64 dim0_limit
) const 

قم بتقطيع هذا الموتر على طول البعد الأول.

أي أن الموتر الذي تم إرجاعه يفي بإرجاع[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 

حدد شريحة فرعية من هذا الموتر على طول البعد الأول.

عند تغذيتها بموتر ذو أبعاد 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()

ينشئ موترًا عائمًا أحادي البعد مكونًا من 0 عنصر.

Tensor الذي تم إرجاعه ليس عدديًا (الشكل {})، ولكنه بدلاً من ذلك موتر فارغ أحادي البعد (الشكل {0}، NumElements() == 0). نظرًا لأنه لا يحتوي على عناصر، فلا يحتاج إلى تعيين قيمة له ويتم تهيئته افتراضيًا ( IsInitialized() صحيح). إذا كان هذا غير مرغوب فيه، فكر في إنشاء عددية مكونة من عنصر واحد والتي تتطلب التهيئة:

Tensor(DT_FLOAT, TensorShape({}))

      

Tensor

 Tensor(
  DataType type,
  const TensorShape & shape
)

ينشئ موترًا من type shape المحددين.

إذا تم تسجيل التخصيص LogMemory::IsEnabled() على أنه قادم من نواة وخطوة غير معروفين. تم إهمال استدعاء منشئ Tensor مباشرة من داخل Op: استخدم أساليب OpKernelConstruction/OpKernelContext allocate_* لتخصيص موتر جديد يسجل النواة والخطوة.

يتم تخصيص المخزن المؤقت الأساسي باستخدام CPUAllocator .

الموتر

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

ينشئ موترًا type الإدخال shape ، باستخدام المُخصص a لتخصيص المخزن المؤقت الأساسي.

إذا تم تسجيل التخصيص LogMemory::IsEnabled() على أنه قادم من نواة وخطوة غير معروفين. تم إهمال استدعاء منشئ Tensor مباشرة من داخل Op: استخدم أساليب OpKernelConstruction/OpKernelContext allocate_* لتخصيص موتر جديد يسجل النواة والخطوة.

a أن يعيش أطول من عمر هذا Tensor .

الموتر

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

ينشئ موترًا type الإدخال shape ، باستخدام المُخصص a و"allocation_attr" المحدد لتخصيص المخزن المؤقت الأساسي.

إذا كانت النواة والخطوة معروفتين، فيجب ضبط المخصص_attr.allocation_will_be_logged على القيمة true ويجب استدعاء LogMemory::RecordTensorAllocation بعد إنشاء الموتر. تم إهمال استدعاء منشئ Tensor مباشرة من داخل Op: استخدم أساليب OpKernelConstruction/OpKernelContext allocate_* لتخصيص موتر جديد يسجل النواة والخطوة.

a أن يعيش أطول من عمر هذا Tensor .

الموتر

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

ينشئ موترًا باستخدام نوع بيانات الإدخال والشكل وbuf.

يكتسب مرجعًا على buf ينتمي إلى Tensor هذا.

الموتر

 Tensor(
  DataType type
)

ينشئ Tensor فارغًا لنوع البيانات المحدد.

مثل Tensor() ‎، تُرجع Tensor أحادي البعد و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(
  const Tensor & other
)

نسخ المنشئ.

الموتر

 Tensor(
  Tensor && other
)

نقل المنشئ.

بعد هذه المكالمة قابل للتدمير بشكل آمن ويمكن تخصيصه له، ولكن الاستدعاءات الأخرى عليه (مثل معالجة الشكل) غير صالحة.

الموتر

 Tensor(
  T *t
)=delete

إجمالي البايت

size_t TotalBytes() const 

إرجاع استخدام الذاكرة المقدر لهذا الموتر.

نسخة غير آمنة من الداخل

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

مثل BitcastFrom، ولكن يفشل التحقق في حالة عدم استيفاء أي شروط مسبقة.

مهمل. استخدم BitcastFrom بدلاً من ذلك وتحقق من الحالة التي تم إرجاعها.

bit_casted_shape

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

أعد بيانات الموتر إلى Eigen::Tensor بالشكل الجديد المحدد في new_sizes وأرسله إلى dtype T جديد.

يعد استخدام البث الثنائي مفيدًا لعمليات النقل والنسخ. البث البتي المسموح به هو الفرق الوحيد عن shaped() .

bit_casted_shape

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 .

dtype

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

تُرجع البيانات على هيئة 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 كموترات NCHW int32. يجب أن يساوي sizeof(T) حجم نوع العنصر الأصلي * عدد العناصر في البعد الأخير الأصلي. يجب أن يكون NDIMS أقل بمقدار 1 من العدد الأصلي للأبعاد.

reinterpret_last_dimension

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

قم بإرجاع بيانات الموتر إلى Eigen::Tensor مع تحويل عناصر البعد الأخير إلى عناصر فردية من نوع أكبر.

على سبيل المثال، يعد هذا مفيدًا للنوى التي يمكنها التعامل مع موترات NCHW_VECT_C int8 كموترات NCHW int32. يجب أن يساوي sizeof(T) حجم نوع العنصر الأصلي * عدد العناصر في البعد الأخير الأصلي. يجب أن يكون 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 التي تم إرجاعها إلى موقع الذاكرة على الأجهزة التي لا تستطيع وحدة المعالجة المركزية معالجتها مباشرة.

ملاحظة: يتم إعادة حساب المخزن المؤقت للموتر الأساسي، بحيث يتطابق عمر المحتويات المعينة بواسطة StringPiece مع عمر المخزن المؤقت؛ يجب على المتصلين اتخاذ الترتيبات اللازمة للتأكد من عدم إتلاف المخزن المؤقت أثناء استمرار استخدام StringPiece.

يتطلب: DataTypeCanUseMemcpy(dtype()) .

unaligned_flat

TTypes< T >::UnalignedFlat unaligned_flat()

unaligned_flat

TTypes< T >::UnalignedConstFlat unaligned_flat() const 

unaligned_shape

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

unaligned_shape

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