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://
บริการเว็บของ Amazon: AWS S3 s3://
Azure: ร้านค้า Azure DataLake, ร้านค้า Azure Blob adl://, abs://
Google Cloud: ที่เก็บข้อมูล Google Cloud gs://
อ่าน CONTRIBUTING.md เพื่อดูแนวทางในการตั้งค่าสภาพแวดล้อมการพัฒนาในเครื่องและทำการเปลี่ยนแปลงโค้ดกลับเป็น Papermill
สำหรับแนวทางการพัฒนา โปรดดูในไฟล์ DEVELOPMENT_GUIDE.md สิ่งนี้ควรแจ้งให้คุณทราบเกี่ยวกับวิธีการเพิ่มเฉพาะให้กับฐานโค้ด
เราโฮสต์เอกสาร Papermill บน ReadTheDocs