זרימת טנזור:: טנזור
#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 (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 אם יש צורך, האם טנזור זה אותחל? |
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 באותו גודל אך עם הטיה סיביות ל-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, תוך כיווץ כל ממדי הטנזור מלבד ה-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, תוך כיווץ כל ממדי הטנזור מלבד ה-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() בצורה קומפקטית.
תוכן פרוטו-טנזור
void AsProtoTensorContent( TensorProto *proto ) const
Bitcast מאת
Status BitcastFrom( const Tensor & other, DataType dtype, const TensorShape & shape )
העתיקו את הטנזור השני לתוך טנזור זה, שנו את צורתו ופרשו מחדש את סוג הנתונים של המאגר.
אם מוחזר הפונקציה Status::OK(), שני הטנזורים חולקים כעת את אותו אחסון בסיסי.
קריאה זו דורשת שהטנזור other והסוג והצורה הנתונים יהיו "תואמים" (כלומר, הם תופסים את אותו מספר בתים).
ספציפית:
shape.num_elements() * גודל סוג נתונים (סוג)
חייב להיות שווה
other.num_elements() * גודל סוג נתונים(other.dtype())
בנוסף, פונקציה זו דורשת:
- גודלסוגData(אחר.dtype()) != 0
- גודלסוג נתונים (סוג) != 0
אם אחת מהדרישות אינה מתקיימת, מוחזר errors::InvalidArgument.
העתק מ
bool CopyFrom( const Tensor & other, const TensorShape & shape ) TF_MUST_USE_RESULT
העתיקו את הטנזור השני לתוך טנזור זה וצארו אותו מחדש.
טנזור זה חולק את האחסון הבסיסי של האחר. מחזירה true אם other.shape() יש את אותו מספר אלמנטים של shape הנתונה.
ניפוי באגים
string DebugString( int num_values ) const
סיכום קריא על ידי בני אדם של הטנזור המתאים לניפוי שגיאות.
ניפוי באגים
string DebugString() const
DeviceSafeDeviceSafeDebugString
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
אם יש צורך, האם טנזור זה אותחל?
טנזורים בעלי אלמנט אפס נחשבים תמיד כמאותחלים, גם אם מעולם לא הוקצו להם ואין להם זיכרון שהוקצה להם.
אותו גודל
bool IsSameSize( const Tensor & b ) const
מספר אלמנטים
int64 NumElements() const
גישה נוחה לצורת הטנזור.
שיתוף מאגר עם
bool SharesBufferWith( const Tensor & b ) const
פְּרוּסָה
Tensor Slice( int64 dim0_start, int64 dim0_limit ) const
פרסו את הטנזור הזה לאורך המימד הראשון.
כלומר, הטנזור המוחזר מקיים את return[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 <= dim0_start < dim_size(0)
סיכום ערך
string SummarizeValue( int64 max_entries, bool print_v2 ) const
עבדו את הערכים הראשונים max_entries ב- *this למחרוזת.
מוֹתֵחַ
Tensor()
יוצר טנזור צף חד-ממדי בעל 0 אלמנטים.
הטנזור המוחזר אינו סקלרי (shape {}), אלא טנזור חד-ממדי ריק (shape {0}, NumElements() == 0). מכיוון שאין לו אלמנטים, אין צורך להקצות לו ערך והוא מאותחל כברירת מחדל ( IsInitialized() הגדרת true). אם זה לא רצוי, שקלו ליצור סקלרי בעל אלמנט אחד הדורש אתחול:
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( Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr )
יוצר טנזור עם type shape הקלט , תוך שימוש במקצה a וב-"allocation_attr" שצוין כדי להקצות את המאגר הבסיסי.
אם הליבה והשלב ידועים, יש להגדיר את allocation_attr.allocation_will_be_logged ל-true ויש לקרוא ל-LogMemory::RecordTensorAllocation לאחר בניית הטנזור. קריאה לבנאי הטנזור ישירות מתוך Op אינה בשימוש: השתמשו בשיטות OpKernelConstruction/OpKernelContext allocate_* כדי להקצות טנזור חדש, אשר רושמים את הליבה והשלב.
a לשרוד את חייו של טנזור זה.
מוֹתֵחַ
Tensor( DataType type, const TensorShape & shape, TensorBuffer *buf )
יוצר טנזור עם סוג נתוני הקלט, צורה ו-buf.
רוכש הפניה על buf השייך לטנזור זה.
מוֹתֵחַ
Tensor( DataType type )
יוצר טנזור ריק מסוג הנתונים הנתון.
כמו 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 )
בנאי העברה.
אחרי השיחה הזו,
סך כל הבייטים
size_t TotalBytes() const
מחזירה את ניצול הזיכרון המשוער של טנזור זה.
העתקה לא בטוחהמפנימית
void UnsafeCopyFromInternal( const Tensor & other, DataType dtype, const TensorShape & shape )
כמו BitcastFrom, אבל CHECK נכשל אם לא מתקיימים תנאים מוקדמים.
הוצא משימוש. השתמש במקום זאת ב-BitcastFrom ובדוק את ה-Status המוחזר.
בצורת_יצוק_bit
TTypes< T, NDIMS >::Tensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes )
החזר את נתוני הטנזור ל- Eigen::Tensor עם הצורה החדשה שצוינה ב- new_sizes והפוך ל- dtype חדש T
שימוש ב-bitcast שימושי לפעולות העברה והעתקה. ההבדל היחיד בין ה-bitcast לבין shaped() הוא ה-bitcast המותר.
בצורת_יצוק_bit
TTypes< T, NDIMS >::ConstTensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes ) const
החזר את נתוני הטנזור ל- Eigen::Tensor עם הצורה החדשה שצוינה ב- new_sizes והפוך ל- dtype חדש T
שימוש ב-bitcast שימושי לפעולות העברה והעתקה. ההבדל היחיד בין ה-bitcast לבין shaped() הוא ה-bitcast המותר.
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 מותר.
גודל_עמום
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(); // 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
שטוח_פנימי_מידות
TTypes< T, NDIMS >::Tensor flat_inner_dims()
שטוח_פנימי_מידות
TTypes< T, NDIMS >::ConstTensor flat_inner_dims() const
שטוח_פנימי_חיצוני_עמעים
TTypes< T, NDIMS >::Tensor flat_inner_outer_dims( int64 begin )
מחזירה את הנתונים כ-Eigen::Tensor עם ממדי NDIMS, תוך כיווץ ממדי הטנזור 'begin' הראשונים לתוך הממד הראשון של התוצאה ואת ממדי הטנזור של ה- dims() - 'begin' - NDIMS האחרונים לתוך הממד האחרון של התוצאה.
אם 'begin' < 0 אז יתווספו המימדים המובילים |'begin'| בגודל 1. אם 'begin' + NDIMS > dims() אז יתווספו המימדים האחרונים של 'begin' + NDIMS - dims() בגודל 1.
שטוח_פנימי_חיצוני_עמעים
TTypes< T, NDIMS >::ConstTensor flat_inner_outer_dims( int64 begin ) const
שטוח_חיצוני_עמעים
TTypes< T, NDIMS >::Tensor 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 )
אופרטור הקצאה. טנזור זה חולק את האחסון הבסיסי של אופרטור אחר.
פירוש_מחדש_מימד_אחרון
TTypes< T, NDIMS >::Tensor reinterpret_last_dimension()
החזר את נתוני הטנזור ל- Eigen::Tensor כאשר אלמנטי הממד האחרונים הומרו לאיברים בודדים מסוג גדול יותר.
לדוגמה, זה שימושי עבור גרעינים שיכולים להתייחס לטנזורי NCHW_VECT_C int8 כלטנזורי NCHW int32. ה-sizeof(T) צריך להיות שווה לגודל האלמנטים המקוריים מסוג * num בממד האחרון המקורי. NDIMS צריך להיות קטן ב-1 ממספר הממדים המקורי.
פירוש_מחדש_מימד_אחרון
TTypes< T, NDIMS >::ConstTensor reinterpret_last_dimension() const
החזר את נתוני הטנזור ל- Eigen::Tensor כאשר אלמנטי הממד האחרונים הומרו לאיברים בודדים מסוג גדול יותר.
לדוגמה, זה שימושי עבור גרעינים שיכולים להתייחס לטנזורי NCHW_VECT_C int8 כלטנזורי NCHW int32. ה-sizeof(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
נתוני_טנזור
StringPiece tensor_data() const
מחזירה StringPiece הממפה את המאגר של הטנזור הנוכחי.
ייתכן StringPiece המוחזר מצביע על מיקום זיכרון במכשירים שהמעבד אינו יכול לטפל בהם ישירות.
הערה: מאגר הטנזור הבסיסי נספר מחדש, כך שאורך החיים של התוכן הממופה על ידי ה- StringPiece תואם את אורך החיים של המאגר; על הקוראים לוודא שהמאגר לא נהרס בזמן שה- StringPiece עדיין בשימוש.
דורש: DataTypeCanUseMemcpy(dtype()) .
שטוח_לא_מיושר
TTypes< T >::UnalignedFlat 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
וקטור
TTypes< T >::Vec vec()
החזר את נתוני הטנזור כ-Eigen::Tensor עם הסוג והגדלים של טנזור זה.
השתמשו בשיטות אלה כאשר ידוע לכם סוג הנתונים ומספר הממדים של הטנזור ואתם רוצים ש-Eigen::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 ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2026-11-05 (שעון UTC).