جریان تنسور:: تانسور
#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 اگر این تانسور تراز باشد، مقدار true را برمیگرداند. |
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 | این تانسور را در امتداد بعد 1 برش دهید. |
SubSlice (int64 index) const | یک زیر اسلایس از این تانسور در امتداد بعد 1 انتخاب کنید. |
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 برمیگرداند، و همه ابعاد 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 تمام روش های بالا. |
توابع عمومی
AllocatedBytes
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 )
تانسور دیگر را در این تانسور کپی کنید، آن را دوباره شکل دهید و نوع داده بافر را دوباره تفسیر کنید.
اگر Status::OK() برگردانده شود، اکنون دو تانسور فضای ذخیره سازی زیرین یکسانی دارند.
این فراخوانی مستلزم آن است که تانسور other
و نوع و شکل داده شده "سازگار" باشند (یعنی همان تعداد بایت را اشغال کنند).
به طور مشخص:
shape.num_elements() * DataTypeSize(نوع)
باید برابر باشد
other.num_elements() * DataTypeSize(other.dtype())
علاوه بر این، این تابع نیاز به:
- DataTypeSize(other.dtype()) != 0
- DataTypeSize(نوع) != 0
اگر هر یک از الزامات برآورده نشد، خطاهای::InvalidArgument برگردانده می شود.
کپی از
bool CopyFrom( const Tensor & other, const TensorShape & shape ) TF_MUST_USE_RESULT
تانسور دیگر را در این تانسور کپی کرده و آن را تغییر شکل دهید.
این تانسور فضای ذخیره سازی زیرین دیگران را به اشتراک می گذارد. اگر other.shape()
دارای همان تعداد عناصر shape
داده شده باشد true
برمی گرداند.
DebugString
string DebugString( int num_values ) const
خلاصه ای قابل خواندن برای انسان از تانسور مناسب برای اشکال زدایی.
DebugString
string DebugString() const
DeviceSafeDebugString
string DeviceSafeDebugString() const
FillDescription
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
اگر این تانسور تراز باشد، مقدار true را برمیگرداند.
اولیه شده است
bool IsInitialized() const
در صورت لزوم، آیا این تانسور مقداردهی اولیه شده است؟
تانسورهای عنصر صفر همیشه مقداردهی اولیه در نظر گرفته می شوند، حتی اگر هرگز به آنها اختصاص داده نشده باشد و هیچ حافظه ای تخصیص داده نشده باشد.
IsSameSize
bool IsSameSize( const Tensor & b ) const
NumeElements
int64 NumElements() const
لوازم جانبی مناسب برای شکل تانسور.
SharesBufferWith
bool SharesBufferWith( const Tensor & b ) const
برش
Tensor Slice( int64 dim0_start, int64 dim0_limit ) const
این تانسور را در امتداد بعد 1 برش دهید.
یعنی، تانسور برگشتی [i, ...] == این [dim0_start + i, ...] بازگشتی را برآورده می کند. تانسور برگشتی بافر تانسور زیرین را با این تانسور به اشتراک می گذارد.
توجه: بسته به شکل، تانسور برگشتی ممکن است همان نیاز ترازبندی این تانسور را برآورده نکند. تماسگیرنده باید تراز تانسور برگشتی را قبل از فراخوانی روشهای خاصی که نیاز به همترازی دارند، بررسی کند (مثلاً flat()
، tensor()
).
توجه: هنگامی که با یک تانسور N بعدی تغذیه می شود، این روش یک تانسور را نیز با ابعاد N برمی گرداند. اگر می خواهید یک تانسور فرعی انتخاب کنید، SubSlice را ببینید.
REQUIRES: dims()
>= 1 مورد نیاز: 0 <= dim0_start <= dim0_limit <= dim_size(0)
SubSlice
Tensor SubSlice( int64 index ) const
یک زیر اسلایس از این تانسور در امتداد بعد 1 انتخاب کنید.
هنگامی که با یک تانسور N بعدی تغذیه می شود، این روش یک تانسور با ابعاد N-1 را برمی گرداند، که در آن تانسور برگشتی یک زیر برش از تانسور ورودی در امتداد بعد اول است. ابعاد N-1 تانسور برگشتی آخرین ابعاد N-1 تانسور ورودی است.
توجه: بسته به شکل، تانسور برگشتی ممکن است همان نیاز ترازبندی این تانسور را برآورده نکند. تماسگیرنده باید تراز تانسور برگشتی را قبل از فراخوانی روشهای خاصی که نیاز به همترازی دارند، بررسی کند (مثلاً flat()
، tensor()
).
REQUIRES: dims()
>= 1 مورد نیاز: 0 <= dim0_start < dim_size(0)
SummarizeValue
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 )
یک تانسور از 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_logg باید روی true تنظیم شود و LogMemory::RecordTensorAllocation باید پس از ساخت تانسور فراخوانی شود. فراخوانی سازنده Tensor مستقیماً از داخل یک Op منسوخ شده است: از روش های OpKernelConstruction/OpKernelContext allocate_* برای تخصیص یک تانسور جدید استفاده کنید که هسته و مرحله را ضبط می کند.
a
از عمر این تنسور بیشتر بگذرد.
تانسور
Tensor( DataType type, const TensorShape & shape, TensorBuffer *buf )
یک تانسور با نوع داده ورودی، شکل و buf ایجاد می کند.
یک ref بر روی buf که متعلق به این Tensor است به دست می آورد.
تانسور
Tensor( DataType type )
یک تانسور خالی از نوع داده داده شده ایجاد می کند.
مانند 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 )
سازنده را حرکت دهید.
پس از این تماس،
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
جدید منتقل کنید.
استفاده از بیت کست برای عملیات جابجایی و کپی مفید است. بیتکست مجاز تنها تفاوت با shaped()
است.
bit_casted_shaped
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()
است با این تفاوت که بیتکست مجاز است.
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
از نوع داده و یک شکل مشخص برگردانید.
این روش ها به شما این امکان را می دهد که به داده ها با ابعاد و اندازه های دلخواه خود دسترسی داشته باشید. برای فراخوانی آنها نیازی به دانستن تعداد ابعاد تانسور نیست. با این حال، آنها 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 برمیگرداند، اولین ابعاد تانسور «شروع» را در اولین بعد نتیجه و ابعاد تانسور آخرین 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 )
اپراتور را اختصاص دهید. این تانسور فضای ذخیره سازی زیرین دیگران را به اشتراک می گذارد.
اپراتور=
Tensor & operator=( Tensor && other )
انتقال اپراتور برای جزئیات بیشتر به سازنده حرکت مراجعه کنید.
reinterpret_last_dimension
TTypes< T, NDIMS >::Tensor reinterpret_last_dimension()
داده های تانسور را به یک Eigen::Tensor
با آخرین عناصر بعد تبدیل به عناصر منفرد از نوع بزرگتر برگردانید.
به عنوان مثال، این برای هسته هایی مفید است که می توانند تانسورهای NCHW_VECT_C int8 را به عنوان تانسور NCHW int32 در نظر بگیرند. اندازه (T) باید با اندازه عنصر اصلی نوع * عناصر num در بعد آخر اصلی برابر باشد. NDIMS باید 1 کمتر از تعداد ابعاد اصلی باشد.
reinterpret_last_dimension
TTypes< T, NDIMS >::ConstTensor reinterpret_last_dimension() const
داده های تانسور را به یک Eigen::Tensor
با آخرین عناصر بعد تبدیل به عناصر منفرد از نوع بزرگتر برگردانید.
به عنوان مثال، این برای هسته هایی مفید است که می توانند تانسورهای NCHW_VECT_C int8 را به عنوان تانسور NCHW int32 در نظر بگیرند. اندازه (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
tensor_data
StringPiece tensor_data() const
StringPiece
برمیگرداند که بافر تانسور فعلی را نگاشت میکند.
StringPiece
برگشتی ممکن است به مکان حافظه در دستگاه هایی اشاره کند که CPU نمی تواند مستقیماً آنها را آدرس دهد.
توجه: بافر تانسور زیرین مجدداً شمارش می شود، بنابراین طول عمر محتویات ترسیم شده توسط StringPiece
با طول عمر بافر مطابقت دارد. تماس گیرندگان باید ترتیبی بدهند تا مطمئن شوند که بافر در زمانی که StringPiece
هنوز استفاده می شود از بین نمی رود.
به: DataTypeCanUseMemcpy(dtype())
نیاز دارد.
unaligned_flat
TTypes< T >::UnalignedFlat unaligned_flat()
unaligned_flat
TTypes< T >::UnalignedConstFlat unaligned_flat() const
unaligned_shaped
TTypes< T, NDIMS >::UnalignedTensor unaligned_shaped( gtl::ArraySlice< int64 > new_sizes )
unaligned_shaped
TTypes< T, NDIMS >::UnalignedConstTensor unaligned_shaped( gtl::ArraySlice< int64 > new_sizes ) const
vec
TTypes< T >::Vec vec()
داده های تانسور را به عنوان Eigen::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 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2024-11-18 بهوقت ساعت هماهنگ جهانی.