tensorflow:: تنسور
#include <tensor.h>یک آرایه n بعدی از مقادیر را نشان میدهد.
خلاصه
سازندهها و مخربها | |
|---|---|
Tensor () یک تانسور اعشاری تکبعدی با صفر عنصر ایجاد میکند. | |
Tensor (DataType type, const TensorShape & shape) | |
Tensor (Allocator *a, DataType type, const TensorShape & shape) با استفاده از تخصیصدهنده a برای تخصیص بافر زیرین، یک تانسور با type و shape ورودی ایجاد میکند. | |
Tensor (Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr) با استفاده از تخصیصدهنده a و "allocation_attr" مشخص شده برای تخصیص بافر اصلی، یک تانسور با type و shape ورودی ایجاد میکند. | |
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 (string 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 با محتوای *this تانسور، proto را پر میکند. |
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 | boolother تجزیه کنید و تانسور را بسازید. |
FromProto (Allocator *a, const TensorProto & other) TF_MUST_USE_RESULT | bool |
IsAligned () const | bool اگر این تانسور همتراز شده باشد، مقدار true را برمیگرداند. |
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 دادههای تانسور را با شکل جدید مشخص شده در new_sizes به یک Eigen::Tensor برگردانید و به یک dtype جدید T تبدیل کنید. |
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) const | TTypes< T, NDIMS >::ConstTensor دادههای تانسور را با شکل جدید مشخص شده در new_sizes به یک Eigen::Tensor برگردانید و به یک 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 |
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 نسخههای ثابت تمام روشهای فوق. |
کارکردهای عمومی
بایتهای تخصیصیافته
size_t AllocatedBytes() const
AsProtoField
void AsProtoField( TensorProto *proto ) const
با محتوای *this تانسور، proto را پر میکند.
AsProtoField() فیلد تکراری تابع proto.dtype() را پر میکند، در حالی که AsProtoTensorContent() محتوای موجود در proto.tensor_content() را به صورت فشرده کدگذاری میکند.
AsProtoTensorContent
void AsProtoTensorContent( TensorProto *proto ) const
بیتکست از
Status BitcastFrom( const Tensor & other, DataType dtype, const TensorShape & shape )
تانسور دیگر را در این تانسور کپی کنید، آن را تغییر شکل دهید و نوع داده بافر را دوباره تفسیر کنید.
اگر Status::OK() برگردانده شود، دو تانسور اکنون فضای ذخیرهسازی زیربنایی یکسانی را به اشتراک میگذارند.
این فراخوانی مستلزم آن است که تانسور other و نوع و شکل داده شده «سازگار» باشند (یعنی تعداد بایتهای یکسانی را اشغال کنند).
به طور خاص:
shape.num_elements() * نوع دادهاندازه(نوع)
باید برابر باشد
other.num_elements() * DataTypeSize(other.dtype())
علاوه بر این، این تابع نیاز دارد:
- نوع دادهاندازه(other.dtype()) != 0
- نوع دادهاندازه(نوع) != 0
اگر هر یک از الزامات برآورده نشود، error::InvalidArgument برگردانده میشود.
کپی از
bool CopyFrom( const Tensor & other, const TensorShape & shape ) TF_MUST_USE_RESULT
تانسور دیگر را در این تانسور کپی کنید و آن را تغییر شکل دهید.
این تانسور فضای ذخیرهسازی زیربنایی دیگری را به اشتراک میگذارد. اگر other.shape() تعداد عناصر یکسانی از shape داده شده داشته باشد، true را برمیگرداند.
رشته اشکالزدایی
string DebugString( int num_values ) const
خلاصهای از تانسور که برای انسان قابل خواندن باشد و برای اشکالزدایی مناسب باشد.
رشته اشکالزدایی
string DebugString() const
رشته اشکالزدایی ایمن دستگاه
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
اگر این تانسور همتراز شده باشد، مقدار true را برمیگرداند.
مقداردهی اولیه شده است
bool IsInitialized() const
در صورت لزوم، آیا این Tensor مقداردهی اولیه شده است؟
تنسورهای با عنصر صفر همیشه مقداردهی اولیه شده در نظر گرفته میشوند، حتی اگر هرگز به آنها مقداردهی نشده باشد و هیچ حافظهای به آنها اختصاص داده نشده باشد.
اندازه یکسان
bool IsSameSize( const Tensor & b ) const
عناصر عددی
int64 NumElements() const
لوازم جانبی راحتی برای شکل تانسور.
SharesBufferWith
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}، NumElements() == 0). از آنجایی که هیچ عنصری ندارد، نیازی به مقداردهی ندارد و به طور پیشفرض مقداردهی اولیه میشود ( IsInitialized() برابر با true است). اگر این مورد نامطلوب است، ایجاد یک اسکالر تکعنصری را در نظر بگیرید که نیاز به مقداردهی اولیه دارد:
Tensor(DT_FLOAT, TensorShape({}))
Tensor
Tensor( DataType type, const TensorShape & shape )
یک تانسور از type و shape داده شده ایجاد میکند.
اگر LogMemory::IsEnabled() باشد، تخصیص به عنوان یک هسته و مرحله ناشناخته ثبت میشود. فراخوانی سازنده Tensor به طور مستقیم از درون یک Op منسوخ شده است: از متدهای OpKernelConstruction/OpKernelContext assign_* برای تخصیص یک تانسور جدید استفاده کنید که هسته و مرحله را ثبت میکند.
بافر اصلی با استفاده از یک CPUAllocator تخصیص داده میشود.
تانسور
Tensor( Allocator *a, DataType type, const TensorShape & shape )
با استفاده از تخصیصدهنده a برای تخصیص بافر زیرین، یک تانسور با type و shape ورودی ایجاد میکند.
اگر LogMemory::IsEnabled() باشد، تخصیص به عنوان یک هسته و مرحله ناشناخته ثبت میشود. فراخوانی سازنده Tensor به طور مستقیم از درون یک Op منسوخ شده است: از متدهای OpKernelConstruction/OpKernelContext assign_* برای تخصیص یک تانسور جدید استفاده کنید که هسته و مرحله را ثبت میکند.
a بیشتر از عمر این تانسور عمر کند.
تانسور
Tensor( Allocator *a, DataType type, const TensorShape & shape, const AllocationAttributes & allocation_attr )
با استفاده از تخصیصدهنده a و "allocation_attr" مشخص شده برای تخصیص بافر اصلی، یک تانسور با type و shape ورودی ایجاد میکند.
اگر هسته و مرحله شناخته شده باشند، allocation_attr.allocation_will_be_logged باید روی true تنظیم شود و LogMemory::RecordTensorAllocation باید پس از ساخت تانسور فراخوانی شود. فراخوانی سازنده Tensor به طور مستقیم از درون یک Op منسوخ شده است: از متدهای OpKernelConstruction/OpKernelContext allocation_* برای تخصیص یک تانسور جدید استفاده کنید که هسته و مرحله را ثبت میکند.
a بیشتر از عمر این تانسور عمر کند.
تانسور
Tensor( DataType type )
یک Tensor خالی از نوع داده داده شده ایجاد میکند.
مانند Tensor() ، یک Tensor تکبعدی و با عنصر ۰ برمیگرداند و 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( string 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
میزان تخمینی استفاده از حافظه توسط این تانسور را برمیگرداند.
کپی از داخل دستگاه (UnsafeCopyFromInternal)
void UnsafeCopyFromInternal( const Tensor & other, DataType dtype, const TensorShape & shape )
مانند BitcastFrom، اما اگر هیچ پیششرطی برقرار نباشد، CHECK با شکست مواجه میشود.
منسوخ شده. به جای آن از BitcastFrom استفاده کنید و Status برگردانده شده را بررسی کنید.
بیت_قالب_گرفته
TTypes< T, NDIMS >::Tensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes )
دادههای تانسور را با شکل جدید مشخص شده در new_sizes به یک Eigen::Tensor برگردانید و به یک dtype جدید T تبدیل کنید.
استفاده از bitcast برای عملیات جابجایی و کپی مفید است. تنها تفاوت bitcast مجاز با shaped() این است.
بیت_قالب_گرفته
TTypes< T, NDIMS >::ConstTensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes ) const
دادههای تانسور را با شکل جدید مشخص شده در new_sizes به یک Eigen::Tensor برگردانید و به یک dtype جدید T تبدیل کنید.
استفاده از bitcast برای عملیات جابجایی و کپی مفید است. تنها تفاوت bitcast مجاز با shaped() این است.
تانسور_بیت_ریخته_شده
TTypes< T, NDIMS >::Tensor bit_casted_tensor()
دادههای تانسور را به یک Eigen::Tensor با اندازه یکسان اما تبدیل بیتی به نوع داده مشخص شده T برگردانید.
استفاده از bitcast برای عملیات جابجایی و کپی مفید است. توجه: این همان tensor() است، با این تفاوت که bitcast مجاز است.
تانسور_بیت_ریخته_شده
TTypes< T, NDIMS >::ConstTensor bit_casted_tensor() const
دادههای تانسور را به یک Eigen::Tensor با اندازه یکسان اما تبدیل بیتی به نوع داده مشخص شده 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 از نوع داده و یک شکل مشخص شده برگردانید.
این متدها به شما امکان میدهند به دادهها با ابعاد و اندازههای دلخواه خود دسترسی داشته باشید. برای فراخوانی آنها نیازی به دانستن تعداد ابعاد Tensor ندارید. با این حال، آنها CHECK که نوع مطابقت داشته باشد و ابعاد درخواستی یک Eigen::Tensor با همان تعداد عناصر 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 برمیگرداند، که اولین ابعاد Tensor 'begin' را در اولین بعد نتیجه و ابعاد Tensor آخرین dims() - 'begin' - NDIMS را در آخرین بعد نتیجه ادغام میکند.
اگر 'begin' < 0 باشد، آنگاه ابعاد اولیه |'begin'| با اندازه ۱ اضافه میشوند. اگر 'begin' + NDIMS > dims() باشد، آنگاه 'begin' + NDIMS - 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() باشد ، ابعاد انتهایی با اندازه ۱ اضافه میشوند تا خروجی رتبه 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 )
عملگر حرکت. برای جزئیات بیشتر به سازنده حرکت مراجعه کنید.
تفسیر مجدد آخرین بُعد
TTypes< T, NDIMS >::Tensor reinterpret_last_dimension()
دادههای تانسور را به یک Eigen::Tensor برگردانید که در آن عناصر آخرین بُعد به عناصر منفرد از نوع بزرگتر تبدیل شدهاند.
برای مثال، این برای هستههایی مفید است که میتوانند با تانسورهای int8 از نوع NCHW_VECT_C به عنوان تانسورهای int32 از نوع NCHW رفتار کنند. sizeof(T) باید برابر با اندازه عنصر اصلی از نوع * تعداد عناصر در آخرین بعد اصلی باشد. NDIMS باید ۱ واحد کمتر از تعداد ابعاد اصلی باشد.
تفسیر مجدد آخرین بُعد
TTypes< T, NDIMS >::ConstTensor reinterpret_last_dimension() const
دادههای تانسور را به یک Eigen::Tensor برگردانید که در آن عناصر آخرین بُعد به عناصر منفرد از نوع بزرگتر تبدیل شدهاند.
برای مثال، این برای هستههایی مفید است که میتوانند با تانسورهای int8 از نوع NCHW_VECT_C به عنوان تانسورهای int32 از نوع NCHW رفتار کنند. sizeof(T) باید برابر با اندازه عنصر اصلی از نوع * تعداد عناصر در آخرین بعد اصلی باشد. NDIMS باید ۱ واحد کمتر از تعداد ابعاد اصلی باشد.
اسکالر
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 برگردانده شده ممکن است به مکانی از حافظه در دستگاههایی اشاره کند که CPU نمیتواند مستقیماً به آنها آدرسدهی کند.
نکته: بافر تانسور زیرین refcount میشود، بنابراین طول عمر محتویات نگاشت شده توسط 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 با نوع و اندازههای این 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
نسخههای ثابت تمام روشهای فوق.
~تانسور
~Tensor()
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2026-11-05 بهوقت ساعت هماهنگ جهانی.