تقسيم "البيانات" إلى موترات "num_partitions" باستخدام مؤشرات من "الأقسام".
لكل مجموعة فهرس `js` ذات حجم `partitions.ndim`، تصبح الشريحة `data[js, ...]` جزءًا من `outputs[partitions[js]]`. يتم وضع الشرائح التي تحتوي على `partitions[js] = i` في `outputs[i]` بالترتيب المعجمي لـ `js`، والبعد الأول لـ `outputs[i]` هو عدد الإدخالات في `partitions` الذي يساوي "أنا". بالتفصيل،
outputs[i].shape = [sum(partitions == i)] + data.shape[partitions.ndim:]
outputs[i] = pack([data[js, ...] for js if partitions[js] == i])
على سبيل المثال:
# Scalar partitions.
partitions = 1
num_partitions = 2
data = [10, 20]
outputs[0] = [] # Empty with shape [0, 2]
outputs[1] = [[10, 20]]
# Vector partitions.
partitions = [0, 0, 1, 1, 0]
num_partitions = 2
data = [10, 20, 30, 40, 50]
outputs[0] = [10, 20, 50]
outputs[1] = [30, 40]
يرفع: * `InvalidArgumentError` في الحالات التالية: - إذا كانت الأقسام ليست في النطاق `[0، num_partiions)` - إذا كان `partitions.shape` لا يتطابق مع بادئة الوسيطة `data.shape`.
الأساليب العامة
ثابت <T> قسم ديناميكي <T> | |
التكرار< المعامل <T>> | مكرر () |
القائمة< الإخراج <T>> | المخرجات () |
الطرق الموروثة
الأساليب العامة
إنشاء قسم DynamicPartition ثابت عام <T> (نطاق النطاق ، بيانات المعامل <T>، أقسام المعامل <Integer>، الأقسام الطويلة)
طريقة المصنع لإنشاء فئة تغلف عملية DynamicPartition جديدة.
حدود
نِطَاق | النطاق الحالي |
---|---|
أقسام | أي شكل. المؤشرات في النطاق `[0، num_partitions)`. |
numPartitions | عدد الأقسام المراد إخراجها |
المرتجعات
- مثيل جديد من DynamicPartition