توافق أشكال الموترات
استنتج شكلا مشتركا للموترات بمقارنة الأبعاد الأخيرة وتوسيع المحاور الأحادية.
from itertools import zip_longest
def broadcast_shape(a, b):
a, b = tuple(a), tuple(b)
if any(type(d) is not int or d < 0 for d in a + b):
raise ValueError("dimension.invalid")
result = []
for left, right in zip_longest(reversed(a), reversed(b), fillvalue=1):
if left == right or right == 1:
result.append(left)
elif left == 1:
result.append(right)
else:
raise ValueError("shape.incompatible")
return tuple(reversed(result))المشروع
اختبر الأعداد القياسية والمحاور الفارغة مع الأبعاد الأحادية وارفض الأبعاد غير المتوافقة أو السالبة أو الكسرية.
راجع قبل التطبيق
قارن السلوك الفعلي بالنتيجة المتوقعة. إذا فشل فحص، تحقّق من السبب قبل إجراء تغييرات إضافية.
النماذج
اضبط نقطة اتصال متوافقة مع OpenAI أو Anthropic باستخدام العنوان الأساسي ومفتاح API عند الحاجة. اختبر الاتصال. يجب أن يعمل خادم النموذج المحلي؛ وقد ترسل الأدوات البعيدة البيانات بشكل منفصل.
from itertools import zip_longest
def broadcast_shape(a, b):
a, b = tuple(a), tuple(b)
if any(type(d) is not int or d < 0 for d in a + b):
raise ValueError("dimension.invalid")
result = []
for left, right in zip_longest(reversed(a), reversed(b), fillvalue=1):
if left == right or right == 1:
result.append(left)
elif left == 1:
result.append(right)
else:
raise ValueError("shape.incompatible")
return tuple(reversed(result))تتبّع افتراضات الأشكال عبر مشروع عددي
يمنح ShapeEstuary أعمال البرمجيات العددية مساحة عمل على Windows يبقى فيها مجلد المشروع وحوار الذكاء الاصطناعي متصلين. ابدأ بالعملية التي تفشل أو تعيد شكلًا غير متوقع. اطلب من نموذجك المختار فحص التحويلات المحيطة وشرح افتراضاتها قبل طلب تعديل. يبقي هذا النهج الاستقصاء مرتبطًا بمسار المعالجة الذي يستخدم النتيجة فعلًا.
مثلًا، يمكن أن يكون broadcast.py أساسًا لمراجعة توافق الأشكال. يحدد الطلب المفيد الأبعاد الواردة وشكل المخرجات المتوقع والسلوك المطلوب للمدخلات غير المتوافقة. اسأل كيف تُستخدم نتيجة الدالة المساعدة لاحقًا، بدلًا من اعتبار المثال نظامًا عدديًا كاملًا. توفر البرمجيات مساحة العمل البرمجية؛ ويحدد مشروعك مكتبة المصفوفات والبيانات وفحوص وقت التشغيل التي تحتاجها المهمة.
تتاح نماذج ذكاء اصطناعي بلا قيود للاختيار عندما تعرضها نقطة نهاية مدعومة متوافقة مع OpenAI أو تابعة لـ Anthropic. اضبط عنوان الخدمة وبيانات الاعتماد المطلوبة، ثم تحقق من إمكاناتها لمهمتك. راجع التعديلات المقترحة واختبر أشكالًا ممثلة، بما فيها الأبعاد الفارغة حيث يسمح عقدك بذلك. قارن السلوك الناتج بالمكتبة العددية التي يستخدمها تطبيقك. يمنح ذلك الحوار أدلة على التوافق دون الخلط بين شرح النموذج الواثق والسلوك العددي المتحقق منه.
أسئلة مراجعة للعمل على الأشكال العددية
ما الذي ينبغي إرفاقه بتقرير عدم تطابق الأشكال؟
قدّم أشكال المدخلات والعملية الفاشلة والنتيجة المتوقعة وإصدار المكتبة المعنية. تساعد حالة صغيرة قابلة لإعادة الإنتاج على ربط العَرَض بالمصدر. تجنب إرسال مجموعة بيانات كبيرة عندما تكفي الأبعاد والقيم الممثلة لشرح المشكلة.
هل توفر مساحة العمل هذه تسريعًا بوحدة GPU؟
لا يثبت سير العمل البرمجي أي قدرة تسريع. تحدد مكتبات مشروعك وعتاده وبيئة تشغيله التنفيذ. استخدم ShapeEstuary لفحص تغييرات الشيفرة ومناقشتها، ثم قِسها وتحقق منها في البيئة التي يجري فيها العمل العددي.
كيف ينبغي التعامل مع الأبعاد ذات الحجم الصفري؟
حدد هل يقبلها التطبيق وقارن السلوك المقترح بمكتبة المصفوفات لديه. اختبر توليفات صالحة وغير متوافقة. لا تدع قاعدة عامة عن الأبعاد الموجبة تستبدل بصمت عقدًا قائمًا يسمح بنتائج فارغة.
هل أغيّر الشيفرة اللاحقة عندما تتغير الدالة المساعدة؟
افحص مستهلكيها أولًا. قد يتطلب شكل مخرجات أو نوع خطأ مختلف تحديثات منسقة. اطلب تحديد الافتراضات المتأثرة، ثم راجع تلك التعديلات معًا وشغّل اختبارات تغطي العملية كاملة.
ShapeEstuary · آخر تحديث 2026-10-25