مؤتمر Google I / O هو التفاف! تابع جلسات TensorFlow اعرض الجلسات

تينسورفلو :: موتر

#include <tensor.h>

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

ملخص

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

Tensor ()
ينشئ موتر عائم أحادي البعد ، مكون من 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 و "التخصيص_اتر" المحدد لتخصيص المخزن المؤقت الأساسي.
Tensor (DataType type, const TensorShape & shape, TensorBuffer *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 محتوى *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
قطع هذا الموتر على طول البعد الأول.
SubSlice (int64 index) const
حدد شريحة فرعية من هذا الموتر على طول البعد الأول.
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 بنفس الحجم ولكن يتم توجيهها باتجاه أحادي إلى النوع T المحدد.
bit_casted_tensor () const
TTypes< T, NDIMS >::ConstTensor
قم بإعادة بيانات الموتر إلى Eigen::Tensor بنفس الحجم ولكن يتم توجيهها باتجاه أحادي إلى النوع 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 للعتيم الأخير () - 'start' - 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 تعيين المخزن المؤقت 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 محتوى *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 () * نوع حجم البيانات (النوع)

يجب أن يساوي

other.num_elements () * نوع حجم البيانات (other.dtype ())

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

  • DataTypeSize (other.dtype ())! = 0
  • DataTypeSize (نوع)! = 0

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

نسخة من

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

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

يشترك هذا الموتر في التخزين الأساسي للآخرين. إرجاع true other.shape() له نفس عدد العناصر shape المحدد.

DebugString

string DebugString(
  int num_values
) const 

ملخص موتر يمكن قراءته من قبل الإنسان ومناسب للتصحيح.

DebugString

string DebugString() const 

DeviceSafeDebugString

string DeviceSafeDebugString() const 

ملء الوصف

void FillDescription(
  TensorDescription *description
) const 

املأ بروتو TensorDescription ببيانات وصفية حول الموتر والتي تكون مفيدة للمراقبة وتصحيح الأخطاء.

FromProto

bool FromProto(
  const TensorProto & other
) TF_MUST_USE_RESULT

تحليل other وبناء موتر.

إرجاع true إذا نجح التحليل. إذا فشل التحليل ، فإن حالة *this لم تتغير.

FromProto

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

محاذاة

bool IsAligned() const 

إرجاع صحيح إذا تم محاذاة موتر.

مهيأ

bool IsInitialized() const 

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

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

بنفس الحجم

bool IsSameSize(
  const Tensor & b
) const 

العناصر

int64 NumElements() const 

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

الأسهم

bool SharesBufferWith(
  const Tensor & b
) const 

شريحة

Tensor Slice(
  int64 dim0_start,
  int64 dim0_limit
) const 

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

أي ، عاد الموتر المرتجع [i، ...] == هذا [dim0_start + i، ...]. يشترك الموتر المرتجع في المخزن المؤقت الأساسي للموتر مع هذا الموتر.

ملاحظة: قد لا يلبي الموتر المرتجع نفس متطلبات المحاذاة مثل هذا الموتر اعتمادًا على الشكل. يجب على المتصل التحقق من محاذاة الموتر المرتجع قبل استدعاء طرق معينة لها متطلبات محاذاة (على سبيل المثال ، flat() ، tensor() ).

ملاحظة: عند التغذية بموتر N-dimensional ، ترجع هذه الطريقة موتر أيضاً بأبعاد N. إذا كنت تريد تحديد موتر فرعي ، فراجع شريحة فرعية.

المتطلبات: dims dims() > = 1 المتطلبات: 0 <= dim0_start <= dim0_limit <= dim_size(0)

شريحة فرعية

Tensor SubSlice(
  int64 index
) const 

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

عند التغذية بموتر N-dimensional tensor ، فإن هذه الطريقة ترجع موترًا بأبعاد N-1 ، حيث يكون الموتر المرتجع شريحة فرعية من موتر الإدخال على طول البعد الأول. أبعاد N-1 للموتر المرتجع هي أبعاد N-1 الأخيرة لموتّر الإدخال.

ملاحظة: قد لا يلبي الموتر المرتجع نفس متطلبات المحاذاة مثل هذا الموتر اعتمادًا على الشكل. يجب أن يتحقق المتصل من محاذاة الموتر المرتجع قبل استدعاء طرق معينة لها متطلبات محاذاة (على سبيل المثال ، flat() ، tensor() ).

المتطلبات: dims dims() > = 1 المتطلبات: 0 <= dim0_start < dim_size(0)

تلخيص القيمة

string SummarizeValue(
  int64 max_entries,
  bool print_v2
) const 

تقديم قيم max_entries الأولى في *this في سلسلة.

موتر

 Tensor()

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

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

Tensor(DT_FLOAT, TensorShape({}))

      

Tensor

 Tensor(
  DataType type,
  const TensorShape & shape
)

ينشئ Tensor من type shape .

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

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

موتر

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

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

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

a يجب أن تعمر عمر هذا التنسور .

موتر

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

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

إذا كانت النواة والخطوة معروفتين ، فيجب ضبط التخصيص على "صحيح" و "تخصيص السجل" بعد إنشاء الموتر. تم إيقاف استدعاء مُنشئ Tensor مباشرة من داخل Op: استخدم أساليب OpKernelConstruction / OpKernelContext Customate_ * لتخصيص موتر جديد ، والذي يسجل النواة والخطوة.

a يجب أن تعمر عمر هذا التنسور .

موتر

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

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

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

موتر

 Tensor(
  DataType type
)

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

مثل التنسور () ، بإرجاع 1 الأبعاد، 0 عنصر التنسور مع 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
)

موتر

063 ب 954840

موتر

 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 ، لكن CHECK يفشل إذا لم يتم استيفاء أي شروط مسبقة.

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

bit_casted_shaped

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

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

استخدام 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 مفيد لعمليات النقل والنسخ. البيتكاست المسموح به هو الاختلاف الوحيد عن shaped() .

bit_casted_tensor

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

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

استخدام bitcast مفيد لعمليات النقل والنسخ. ملاحظة: هذا هو نفسه tensor() باستثناء السماح بتقسيم بت.

bit_casted_tensor

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

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

استخدام bitcast مفيد لعمليات النقل والنسخ. ملاحظة: هذا هو نفسه tensor() باستثناء السماح بتقسيم البت.

الحجم الخافت

int64 dim_size(
  int d
) const 

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

يخفت

int dims() const 

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

لجميع TensorShape الشكل ، راجع التعليقات الخاصة بالطرق ذات الصلة لـ 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({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 

أبعاد مسطحة

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

تُرجع البيانات على أنها Eigen :: Tensor بأبعاد NDIMS ، مما يؤدي إلى انهيار جميع أبعاد Tensor ولكن NDIMS-1 الأخير في البعد الأول من النتيجة

إذا كان NDIMS> dims () ، فسيتم إضافة الأبعاد الأولية للحجم 1 لجعل ترتيب المخرجات NDIMS.

أبعاد مسطحة

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 للعتيم الأخير () - 'start' - NDIMS في البعد الأخير من نتيجة.

إذا كان 'start' <0 ثم | 'start' | سيتم إضافة الأبعاد الرائدة من الحجم 1. إذا 'تبدأ' + NDIMS> يخفت () ثم 'تبدأ' + NDIMS - يخفت () زائدة أبعاد حجم 1 ستضاف.

Flat_inner_outer_dims

TTypes< T, NDIMS >::ConstTensor flat_inner_outer_dims(
  int64 begin
) const 

أبعاد مسطحة

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

تُرجع البيانات على أنها Eigen :: Tensor بأبعاد NDIMS ، مما يؤدي إلى انهيار جميع أبعاد Tensor ولكن أول NDIMS-1 في البعد الأخير من النتيجة.

إذا كان NDIMS> dims () ، فسيتم إضافة أبعاد لاحقة من الحجم 1 لجعل رتبة المخرجات NDIMS.

أبعاد مسطحة

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. يجب أن يساوي حجم (T) حجم نوع العنصر الأصلي * عدد العناصر في البعد الأخير الأصلي. يجب أن يكون NDIMS أقل بمقدار 1 من العدد الأصلي للأبعاد.

reinterpret_last_dimension

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

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

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

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

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

unaligned_flat

TTypes< T >::UnalignedFlat unaligned_flat()

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 

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