تدفق التوتر:: الموتر
#include <tensor.h>
يمثل مصفوفة ذات أبعاد n من القيم.
ملخص
البنائين والمدمرين | |
---|---|
Tensor () ينشئ موترًا عائمًا أحادي البعد مكونًا من 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 فارغًا لنوع البيانات المحدد. | |
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 |
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 )
انسخ الموتر الآخر إلى هذا الموتر، وأعد تشكيله وأعد تفسير نوع بيانات المخزن المؤقت.
إذا تم إرجاع الحالة::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( 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()
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 )
تعيين المشغل. يشارك هذا الموتر التخزين الأساسي للآخرين.
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()
العددية
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()
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2024-11-24 (حسب التوقيت العالمي المتفَّق عليه)