tensorflow:: Tensor
#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, const TensorShape & shape, TensorBuffer *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*this টেনসরের বিষয়বস্তু দিয়ে proto পূরণ করে। |
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 | 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 এই টেনসরটি অ্যালাইনড হলেই ট্রু রিটার্ন করে। |
IsInitialized () const | bool প্রয়োজন হলে, এই টেনসরটি কি প্রারম্ভিকীকরণ করা হয়েছে? |
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 | string*this এর প্রথম max_entries মানগুলোকে একটি স্ট্রিং-এ রেন্ডার করুন। |
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 >:: Tensornew_sizes এ নির্দিষ্ট করা নতুন আকৃতি অনুযায়ী টেনসর ডেটা একটি Eigen::Tensor এ ফেরত দিন এবং এটিকে একটি নতুন dtype T তে কাস্ট করুন। |
bit_casted_shaped (gtl::ArraySlice< int64 > new_sizes) const | TTypes< T, NDIMS >::ConstTensornew_sizes এ নির্দিষ্ট করা নতুন আকৃতি অনুযায়ী টেনসর ডেটা একটি Eigen::Tensor এ ফেরত দিন এবং এটিকে একটি নতুন dtype T তে কাস্ট করুন। |
bit_casted_tensor () | TTypes< T, NDIMS >:: Tensor টেনসর ডেটাটিকে একই আকারের কিন্তু নির্দিষ্ট dtype T তে বিটওয়াইজ কাস্ট করে একটি Eigen::Tensor এ ফেরত দিন। |
bit_casted_tensor () const | TTypes< T, NDIMS >::ConstTensor টেনসর ডেটাটিকে একই আকারের কিন্তু নির্দিষ্ট dtype T তে বিটওয়াইজ কাস্ট করে একটি Eigen::Tensor এ ফেরত দিন। |
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 এটি ডেটাটিকে NDIMS ডাইমেনশনসহ একটি Eigen::Tensor হিসেবে ফেরত দেয় এবং শেষ NDIMS-1 ডাইমেনশনটি ছাড়া Tensor-এর বাকি সব ডাইমেনশনকে ফলাফলের প্রথম ডাইমেনশনের মধ্যে সংকুচিত করে। |
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 এটি ডেটাটিকে NDIMS ডাইমেনশনসহ একটি Eigen::Tensor হিসেবে ফেরত দেয় এবং প্রথম NDIMS-1 বাদে Tensor-এর বাকি সমস্ত ডাইমেনশনকে ফলাফলের শেষ ডাইমেনশনের মধ্যে সংকুচিত করে। |
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 এই Tensor টাইপ ও সাইজ ব্যবহার করে টেনসর ডেটাটিকে একটি Eigen::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() * DataTypeSize(type)
অবশ্যই সমান হতে হবে
other.num_elements() * DataTypeSize(other.dtype())
এছাড়াও, এই ফাংশনটির জন্য প্রয়োজন:
- DataTypeSize(other.dtype()) != 0
- DataTypeSize(type) != 0
যদি কোনো শর্ত পূরণ না হয়, তাহলে errors::InvalidArgument রিটার্ন করা হয়।
কপিফ্রম
bool CopyFrom( const Tensor & other, const TensorShape & shape ) TF_MUST_USE_RESULT
অন্য টেনসরটিকে এই টেনসরের মধ্যে কপি করুন এবং এর আকার পরিবর্তন করুন।
এই টেনসরটি ‘other’-এর অন্তর্নিহিত স্টোরেজ ব্যবহার করে। এটি true রিটার্ন করে যদি এবং কেবল যদি other.shape() এর উপাদান সংখ্যা প্রদত্ত shape এর সমান হয়।
ডিবাগস্ট্রিং
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
এই টেনসরটি অ্যালাইনড হলেই ট্রু রিটার্ন করে।
প্রারম্ভিক
bool IsInitialized() const
প্রয়োজন হলে, এই টেনসরটি কি প্রারম্ভিকীকরণ করা হয়েছে?
শূন্য-উপাদান টেনসরকে সর্বদা প্রারম্ভিক অবস্থায় আছে বলে গণ্য করা হয়, এমনকি যদি সেগুলিতে কখনও কোনো কিছু বরাদ্দ করা না হয়ে থাকে বা কোনো মেমরি বরাদ্দ না করা হয়ে থাকে।
একই আকারের
bool IsSameSize( const Tensor & b ) const
উপাদান সংখ্যা
int64 NumElements() const
টেনসর শেপের জন্য সুবিধাজনক অ্যাক্সেসর।
RefCountIsOne
bool RefCountIsOne() const
শেয়ারবাফারউইথ
bool SharesBufferWith( const Tensor & b ) const
স্লাইস
Tensor Slice( int64 dim0_start, int64 dim0_limit ) const
এই টেনসরটিকে প্রথম মাত্রা বরাবর ভাগ করুন।
অর্থাৎ, ফেরত আসা টেনসরটি returned[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)
সারসংক্ষেপমান
string SummarizeValue( int64 max_entries, bool print_v2 ) const
*this এর প্রথম max_entries মানগুলোকে একটি স্ট্রিং-এ রেন্ডার করুন।
টেনসর
Tensor()
একটি ১-মাত্রিক, ০-উপাদান বিশিষ্ট ফ্লোট টেনসর তৈরি করে।
ফেরত আসা টেনসরটি একটি স্কেলার (আকৃতি {}) নয়, বরং এটি একটি খালি এক-মাত্রিক টেনসর (আকৃতি {0}, NumElements() == 0)। যেহেতু এর কোনো উপাদান নেই, তাই এটিকে কোনো মান দেওয়ার প্রয়োজন হয় না এবং এটি ডিফল্টরূপে ইনিশিয়ালাইজড থাকে ( IsInitialized() ট্রু)। যদি এটি অনাকাঙ্ক্ষিত হয়, তবে একটি এক-উপাদান বিশিষ্ট স্কেলার তৈরি করার কথা বিবেচনা করতে পারেন, যেটির ইনিশিয়ালাইজেশনের প্রয়োজন হয়:
Tensor(DT_FLOAT, TensorShape({}))
Tensor
Tensor( DataType type, const TensorShape & shape )
প্রদত্ত type ও shape একটি টেনসর তৈরি করে।
LogMemory::IsEnabled() সক্রিয় থাকলে, অ্যালোকেশনটি একটি অজানা কার্নেল এবং স্টেপ থেকে এসেছে বলে লগ করা হয়। একটি Op-এর ভেতর থেকে সরাসরি Tensor কনস্ট্রাক্টরকে কল করা এখন আর প্রচলিত নয়: একটি নতুন টেনসর অ্যালোকেট করতে OpKernelConstruction/OpKernelContext allocate_* মেথডগুলো ব্যবহার করুন, যা কার্নেল এবং স্টেপ রেকর্ড করে।
অন্তর্নিহিত বাফারটি একটি CPUAllocator ব্যবহার করে বরাদ্দ করা হয়।
টেনসর
Tensor( Allocator *a, DataType type, const TensorShape & shape )
অন্তর্নিহিত বাফার বরাদ্দ করার জন্য অ্যালোকেটর a ব্যবহার করে, ইনপুট type ও shape অনুযায়ী একটি টেনসর তৈরি করে।
LogMemory::IsEnabled() সক্রিয় থাকলে, অ্যালোকেশনটি একটি অজানা কার্নেল এবং স্টেপ থেকে এসেছে বলে লগ করা হয়। একটি Op-এর ভেতর থেকে সরাসরি Tensor কনস্ট্রাক্টরকে কল করা এখন আর প্রচলিত নয়: একটি নতুন টেনসর অ্যালোকেট করতে OpKernelConstruction/OpKernelContext allocate_* মেথডগুলো ব্যবহার করুন, যা কার্নেল এবং স্টেপ রেকর্ড করে।
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 কল করতে হবে। একটি Op-এর ভেতর থেকে সরাসরি Tensor কনস্ট্রাক্টরকে কল করা এখন আর প্রচলিত নয়: একটি নতুন টেনসর অ্যালোকেট করার জন্য OpKernelConstruction/OpKernelContext allocate_* মেথডগুলো ব্যবহার করুন, যা কার্নেল এবং স্টেপ রেকর্ড করে।
a এই টেনসরের জীবনকালকে অতিক্রম করতে হবে।
টেনসর
Tensor( DataType type, const TensorShape & shape, TensorBuffer *buf )
ইনপুট ডেটাটাইপ, শেপ এবং বাফ ব্যবহার করে একটি টেনসর তৈরি করে।
এই টেনসরের অন্তর্গত buf-এর উপর একটি ref অধিগ্রহণ করে।
টেনসর
Tensor( DataType type )
প্রদত্ত ডেটা টাইপের একটি খালি টেনসর তৈরি করে।
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( 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 পরীক্ষা করুন।
বিট_কাস্টেড_আকৃতির
TTypes< T, NDIMS >::Tensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes )
new_sizes এ নির্দিষ্ট করা নতুন আকৃতি অনুযায়ী টেনসর ডেটা একটি Eigen::Tensor এ ফেরত দিন এবং এটিকে একটি নতুন dtype T তে কাস্ট করুন।
মুভ এবং কপি অপারেশনের জন্য বিটকাস্ট ব্যবহার করা সুবিধাজনক। অনুমোদিত বিটকাস্টই হলো shaped() থেকে এর একমাত্র পার্থক্য।
বিট_কাস্টেড_আকৃতির
TTypes< T, NDIMS >::ConstTensor bit_casted_shaped( gtl::ArraySlice< int64 > new_sizes ) const
new_sizes এ নির্দিষ্ট করা নতুন আকৃতি অনুযায়ী টেনসর ডেটা একটি Eigen::Tensor এ ফেরত দিন এবং এটিকে একটি নতুন dtype T তে কাস্ট করুন।
মুভ এবং কপি অপারেশনের জন্য বিটকাস্ট ব্যবহার করা সুবিধাজনক। অনুমোদিত বিটকাস্টই হলো shaped() থেকে এর একমাত্র পার্থক্য।
বিট_কাস্টেড_টেনসর
TTypes< T, NDIMS >::Tensor bit_casted_tensor()
টেনসর ডেটাটিকে একই আকারের কিন্তু নির্দিষ্ট dtype T তে বিটওয়াইজ কাস্ট করে একটি Eigen::Tensor এ ফেরত দিন।
মুভ এবং কপি অপারেশনের জন্য বিটকাস্ট ব্যবহার করা সুবিধাজনক। দ্রষ্টব্য: এটি tensor() এর মতোই, তবে এক্ষেত্রে বিটকাস্ট ব্যবহারের অনুমতি আছে।
বিট_কাস্টেড_টেনসর
TTypes< T, NDIMS >::ConstTensor bit_casted_tensor() const
টেনসর ডেটাটিকে একই আকারের কিন্তু নির্দিষ্ট dtype T তে বিটওয়াইজ কাস্ট করে একটি Eigen::Tensor এ ফেরত দিন।
মুভ এবং কপি অপারেশনের জন্য বিটকাস্ট ব্যবহার করা সুবিধাজনক। দ্রষ্টব্য: এটি tensor() এর মতোই, তবে এক্ষেত্রে বিটকাস্ট ব্যবহারের অনুমতি আছে।
ডেটা
void * data() const
ডিম_সাইজ
int64 dim_size( int d ) const
টেনসর শেপের জন্য সুবিধাজনক অ্যাক্সেসর।
ডিম
int dims() const
টেনসর শেপের জন্য সুবিধাজনক অ্যাক্সেসর।
সমস্ত শেপ অ্যাক্সেসরের জন্য, tensor_shape.h ফাইলে TensorShape এর প্রাসঙ্গিক মেথডগুলোর কমেন্ট দেখুন।
ডেটাটাইপ
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()
এটি ডেটাটিকে NDIMS ডাইমেনশনসহ একটি Eigen::Tensor হিসেবে ফেরত দেয় এবং শেষ NDIMS-1 ডাইমেনশনটি ছাড়া Tensor-এর বাকি সব ডাইমেনশনকে ফলাফলের প্রথম ডাইমেনশনের মধ্যে সংকুচিত করে।
যদি NDIMS > dims() হয় , তাহলে আউটপুট র্যাঙ্ক NDIMS করার জন্য শুরুতে ১ আকারের ডাইমেনশন যোগ করা হবে।
ফ্ল্যাট_অভ্যন্তরীণ_মাত্রা
TTypes< T, NDIMS >::ConstTensor flat_inner_dims() const
flat_inner_outer_dims
TTypes< T, NDIMS >::Tensor flat_inner_outer_dims( int64 begin )
ডেটাটিকে NDIMS ডাইমেনশন সহ একটি Eigen::Tensor হিসেবে ফেরত দেয়, যেখানে প্রথম 'begin' Tensor ডাইমেনশনগুলোকে ফলাফলের প্রথম ডাইমেনশনে এবং শেষ dims() - 'begin' - NDIMS Tensor ডাইমেনশনগুলোকে ফলাফলের শেষ ডাইমেনশনে একত্রিত করা হয়।
যদি 'begin' < 0 হয়, তাহলে ১ সাইজের |'begin'|টি অগ্রবর্তী ডাইমেনশন যোগ করা হবে। যদি 'begin' + NDIMS > dims() হয়, তাহলে ১ সাইজের 'begin' + NDIMS - dims() টি পশ্চাৎবর্তী ডাইমেনশন যোগ করা হবে।
flat_inner_outer_dims
TTypes< T, NDIMS >::ConstTensor flat_inner_outer_dims( int64 begin ) const
ফ্ল্যাট_আউটার_ডাইম
TTypes< T, NDIMS >::Tensor flat_outer_dims()
এটি ডেটাটিকে NDIMS ডাইমেনশনসহ একটি Eigen::Tensor হিসেবে ফেরত দেয় এবং প্রথম NDIMS-1 বাদে Tensor-এর বাকি সমস্ত ডাইমেনশনকে ফলাফলের শেষ ডাইমেনশনের মধ্যে সংকুচিত করে।
যদি 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 )
অ্যাসাইন অপারেটর। এই টেনসরটি অন্য টেনসরের অন্তর্নিহিত স্টোরেজ ব্যবহার করে।
শেষ মাত্রা পুনরায় ব্যাখ্যা করুন
TTypes< T, NDIMS >::Tensor reinterpret_last_dimension()
টেনসর ডেটা একটি Eigen::Tensor এ ফেরত দিন, যেখানে শেষ ডাইমেনশনের উপাদানগুলোকে একটি বৃহত্তর টাইপের একক উপাদানে রূপান্তরিত করা হবে।
উদাহরণস্বরূপ, এটি সেইসব কার্নেলের জন্য উপযোগী যেগুলো NCHW_VECT_C int8 টেনসরকে NCHW int32 টেনসর হিসেবে বিবেচনা করতে পারে। sizeof(T)-এর মান মূল এলিমেন্ট টাইপের সাইজ * মূল শেষ ডাইমেনশনের এলিমেন্টের সংখ্যার সমান হওয়া উচিত। NDIMS-এর মান মূল ডাইমেনশনের সংখ্যার চেয়ে ১ কম হওয়া উচিত।
শেষ মাত্রা পুনরায় ব্যাখ্যা করুন
TTypes< T, NDIMS >::ConstTensor reinterpret_last_dimension() const
টেনসর ডেটা একটি Eigen::Tensor এ ফেরত দিন, যেখানে শেষ ডাইমেনশনের উপাদানগুলোকে একটি বৃহত্তর টাইপের একক উপাদানে রূপান্তরিত করা হবে।
উদাহরণস্বরূপ, এটি সেইসব কার্নেলের জন্য উপযোগী যেগুলো NCHW_VECT_C int8 টেনসরকে NCHW int32 টেনসর হিসেবে বিবেচনা করতে পারে। 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
টেনসর_ডেটা
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
উপরের সমস্ত পদ্ধতির ধ্রুবক সংস্করণ।
~টেনসর
~Tensor()