StridedSliceHelper

فئة مجردة عامة StridedSliceHelper

طرق نقطة النهاية المساعدة لبيثون مثل الفهرسة.

أنظر أيضا

المقاولون العامون

الأساليب العامة

ثابت <T يمتد TType > StridedSlice <T>
stridedSlice (نطاق النطاق ، إدخال المعامل <T>، الفهرس... المؤشرات)
قم بإرجاع شريحة ممتدة من "الإدخال".
ثابت <T يمتد TType > StridedSliceAssign <T>
stridedSliceAssign (نطاق النطاق ، مرجع المعامل <T>، قيمة المعامل <T>، الفهرس... المؤشرات)
قم بتعيين "قيمة" لمرجع القيمة l المقسم إلى "المرجع".

الطرق الموروثة

المقاولون العامون

StridedSliceHelper العامة ()

الأساليب العامة

StridedSlice العامة الثابتة <T> stridedSlice (نطاق النطاق ، إدخال المعامل <T>، الفهرس... المؤشرات)

قم بإرجاع شريحة ممتدة من "الإدخال".

الهدف من هذه العملية هو إنتاج موتر جديد مع مجموعة فرعية من العناصر من موتر الإدخال ذو الأبعاد المتعددة. يتم اختيار المجموعة الفرعية باستخدام سلسلة من مواصفات النطاق المتناثر `m` المشفرة في وسائط هذه الوظيفة. لاحظ أنه في بعض الحالات يمكن أن يكون `m` مساويًا لـ `n`، ولكن ليس من الضروري أن يكون هذا هو الحال. يمكن أن يكون كل إدخال لمواصفات النطاق واحدًا مما يلي:

- علامة الحذف (...) باستخدام ellipsis() . تُستخدم علامات الحذف للإشارة إلى صفر أو أكثر من أبعاد تحديد البعد الكامل. على سبيل المثال، stridedSlice(foo, Indices.ellipsis() هي شريحة الهوية.

- محور جديد باستخدام newAxis() . يُستخدم هذا لإدراج شكل جديد = بُعد واحد. على سبيل المثال، stridedSlice(foo, Indices.newAxis()) حيث foo هو الشكل (3, 4) ينتج موترًا (1, 3, 4) .

- نطاق begin:end:stride باستخدام slice(Long, Long, long) Index.slice()} أو all() . يُستخدم هذا لتحديد مقدار الاختيار من بُعد معين. يمكن أن تكون stride أي عدد صحيح ولكن 0. begin هو عدد صحيح يمثل فهرس القيمة الأولى المراد تحديدها بينما تمثل end فهرس القيمة الأخيرة المراد تحديدها (حصريًا). يمكن أن تكون البداية والنهاية فارغة، وفي هذه الحالة يبدأ الفهرس أو ينتهي عند بداية البعد أو نهايته، على التوالي (يتم عكسه إذا كانت الخطوة سالبة). عندما يكون كلاهما فارغًا، slice() هي نفسها all() . عدد القيم المحددة في كل بعد هو end - begin إذا كانت stride > 0 begin - end إذا كانت stride < 0 . يمكن أن تكون begin end سالبة حيث -1 هو العنصر الأخير، -2 هو العنصر الثاني قبل الأخير. على سبيل المثال، بالنظر إلى الشكل (3,) Tensor stridedSlice(foo, Indices.all()) ، فإن begin end الفعالتين هما 0 و 3 . لا تفترض أن هذا يعادل stridedSlice(foo, Indices.slice(0, -1)) التي لها begin end فعالتين 0 و 2 . مثال آخر هو stridedSlice(foo, Indices.slice(-2, null, -1)) الذي يعكس البعد الأول للموتر بينما يسقط البعدين الأخيرين (في عناصر الترتيب الأصلي). على سبيل المثال foo = [1,2,3,4]; stridedSlice(foo, Indices.slice(-2, null, -1) هو [4,3] .

- فهرس واحد يستخدم at(long) . يُستخدم هذا للاحتفاظ فقط بالعناصر التي تحتوي على فهرس معين. على سبيل المثال ( stridedSlice(foo, Indices.at(2)) على موتر الشكل (5,6) ينتج موتر الشكل (6,) . يمكن الاحتفاظ بالبعد بالحجم الأول باستخدام at(long, boolean) .

تتبع هذه الدلالات عمومًا دلالات فهرسة NumPy، والتي يمكن العثور عليها هنا: https://numpy.org/doc/stable/reference/arrays.indexing.html

المتطلبات : `0 !=خطوات[i] لـ i في [0, m)` علامة حذف واحدة فقط.

حدود
نِطَاق النطاق الحالي
المؤشرات المؤشرات لشريحة. انظر Indices .
عائدات
  • مثيل جديد من StridedSlice
أنظر أيضا

StridedSliceAssign العام الثابت <T> stridedSliceAssign ( نطاق النطاق ، المرجع <T>، قيمة المعامل <T>، الفهرس... المؤشرات)

قم بتعيين "قيمة" لمرجع القيمة l المقسم إلى "المرجع".

يتم تعيين قيم "القيمة" إلى المواضع الموجودة في المتغير "ref" والتي يتم تحديدها بواسطة معلمات الشريحة. تعمل معلمات الشريحة `begin` و`end` و`strides` وما إلى ذلك تمامًا كما في `StridedSlice`.

لاحظ أن هذه العملية لا تدعم البث حاليًا ولذلك يجب أن يكون شكل "القيمة" هو الشكل الذي تنتجه شريحة "ref" تمامًا.

حدود
نِطَاق النطاق الحالي
المرجع الموتر الذي سيتم تعيينه إليه.
قيمة القيمة المراد تعيينها.
المؤشرات المؤشرات لشريحة. انظر Indices .
عائدات
  • مثيل جديد لـ StridedSliceAssign