Papermill هي أداة لتحديد المعلمات وتنفيذ وتحليل Jupyter Notebooks.
يتيح لك Papermill:
وهذا يفتح فرصًا جديدة لكيفية استخدام أجهزة الكمبيوتر المحمولة. على سبيل المثال:
تتخذ شركة Papermill نهجًا حازمًا في تحديد معلمات أجهزة الكمبيوتر المحمولة وتنفيذها استنادًا إلى تجاربنا في استخدام أجهزة الكمبيوتر المحمولة على نطاق واسع في خطوط أنابيب البيانات.
من سطر الأوامر:
pip install papermill
بالنسبة لجميع تبعيات io الاختيارية، يمكنك تحديد حزم فردية مثل s3
أو azure
- أو استخدام all
. لاستخدام اللون الأسود لتنسيق المعلمات، يمكنك إضافتها كمعلمات إضافية تتطلب ['أسود'].
pip install papermill[all]
تدعم هذه المكتبة حاليًا إصدارات Python 3.8+. نظرًا لأن إصدارات Python الثانوية قد تم إيقافها رسميًا بواسطة مصنع ورق Python org، فسوف يسقط الدعم بالمثل في المستقبل.
لتحديد معلمات دفتر الملاحظات الخاص بك، قم بتعيين خلية تحتوي على parameters
العلامة.
يبحث Papermill عن خلية parameters
ويعامل هذه الخلية كإعدادات افتراضية للمعلمات التي تم تمريرها في وقت التنفيذ. ستضيف Papermill خلية جديدة تحمل علامة injected-parameters
مع معلمات الإدخال من أجل الكتابة فوق القيم الموجودة في parameters
. إذا لم يتم وضع علامة على أي خلية parameters
فسيتم إدراج الخلية المحقونة في الجزء العلوي من دفتر الملاحظات.
بالإضافة إلى ذلك، إذا قمت بإعادة تشغيل دفاتر الملاحظات من خلال مصنع الورق، فسيتم إعادة استخدام خلية injected-parameters
من التشغيل السابق. في هذه الحالة، ستقوم Papermill باستبدال خلية injected-parameters
القديمة بمدخلات التشغيل الجديدة.
الطريقتان لتنفيذ دفتر الملاحظات باستخدام المعلمات هما: (1) من خلال Python API و(2) من خلال واجهة سطر الأوامر.
import papermill as pm
pm.execute_notebook(
'path/to/input.ipynb',
'path/to/output.ipynb',
parameters = dict(alpha=0.6, ratio=0.1)
)
فيما يلي مثال على دفتر ملاحظات محلي يتم تنفيذه وإخراجه إلى حساب Amazon S3:
$ papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1
ملاحظة: إذا كنت تستخدم حسابات AWS متعددة، وقمت بتكوين بيانات اعتماد AWS الخاصة بك بشكل صحيح، فيمكنك تحديد الحساب الذي تريد استخدامه عن طريق تعيين متغير البيئة AWS_PROFILE
في سطر الأوامر. على سبيل المثال:
$ AWS_PROFILE=dev_account papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1
في المثال أعلاه، تم تعيين معلمتين: alpha
و l1_ratio
باستخدام -p
(يعمل --parameters
أيضًا). سيتم تفسير قيم المعلمات التي تبدو مثل القيم المنطقية أو الأرقام على هذا النحو. فيما يلي الطرق المختلفة التي يمكن للمستخدمين من خلالها تعيين المعلمات:
$ papermill local/input.ipynb s3://bkt/output.ipynb -r version 1.0
باستخدام -r
أو --parameters_raw
، يمكن للمستخدمين تعيين المعلمات واحدة تلو الأخرى. ومع ذلك، على عكس -p
، ستبقى المعلمة سلسلة، حتى لو تم تفسيرها كرقم أو منطقية.
$ papermill local/input.ipynb s3://bkt/output.ipynb -f parameters.yaml
باستخدام -f
أو --parameters_file
، يمكن للمستخدمين توفير ملف YAML الذي يجب قراءة قيم المعلمات منه.
$ papermill local/input.ipynb s3://bkt/output.ipynb -y "
alpha: 0.6
l1_ratio: 0.1"
باستخدام -y
أو --parameters_yaml
، يمكن للمستخدمين توفير سلسلة YAML مباشرة تحتوي على قيم المعلمات.
$ papermill local/input.ipynb s3://bkt/output.ipynb -b YWxwaGE6IDAuNgpsMV9yYXRpbzogMC4xCg==
باستخدام -b
أو --parameters_base64
، يمكن للمستخدمين توفير سلسلة YAML، بتشفير base64، تحتوي على قيم المعلمات.
عند استخدام YAML لتمرير الوسائط، من خلال -y
أو -b
أو -f
، يمكن أن تكون قيم المعلمات عبارة عن صفائف أو قواميس:
$ papermill local/input.ipynb s3://bkt/output.ipynb -y "
x:
- 0.0
- 1.0
- 2.0
- 3.0
linear_function:
slope: 3.0
intercept: 1.0"
يدعم Papermill معالجات الأسماء التالية لمسارات الإدخال والإخراج أثناء التنفيذ:
نظام الملفات المحلي: local
HTTP، بروتوكول HTTPS: http://, https://
خدمات ويب أمازون: AWS S3 s3://
Azure: متجر Azure DataLake، متجر Azure Blob adl://, abs://
Google Cloud: Google Cloud Storage gs://
اقرأ CONTRIBUTING.md للحصول على إرشادات حول كيفية إعداد بيئة تطوير محلية وإجراء تغييرات على التعليمات البرمجية مرة أخرى إلى Papermill.
للحصول على إرشادات التطوير، ابحث في ملف DEVELOPMENT_GUIDE.md. يجب أن يعلمك هذا بكيفية إجراء إضافات معينة إلى قاعدة التعليمات البرمجية.
نحن نستضيف وثائق Papermill على ReadTheDocs.