แนวทางปฏิบัติที่ดีสำหรับ Jupyter Notebooks
ใช้เซลล์ที่มีหมายเลข ล้างผลลัพธ์ให้ชัดเจนก่อนคอมมิต และใช้ papermill สำหรับการทำงานที่กำหนดพารามิเตอร์
แนวทางปฏิบัติที่ดีสำหรับ Jupyter Notebooks เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
สมุดบันทึก Jupyter: ดาบสองคม
สมุดบันทึก Jupyter ยอดเยี่ยมสำหรับการสำรวจข้อมูล: เรียกใช้โค้ดในเซลล์ ดูแผนภูมิในหน้าเดียวกัน และทำซ้ำอย่างรวดเร็ว แต่ความยืดหยุ่นแบบเดียวกันนี้อาจทำให้งานยุ่งเหยิงและทำซ้ำผลลัพธ์ไม่ได้ หากคุณไม่ทำงานอย่างมีวินัย
บทเรียนนี้ครอบคลุมแนวปฏิบัติที่ช่วยให้สมุดบันทึกสะอาดและน่าเชื่อถือ
สถานะซ่อนเร้น: ปัญหาหลัก
คุณสามารถเรียกใช้เซลล์ในลำดับใดก็ได้ และผลลัพธ์ก่อนหน้านี้จะยังคงอยู่ในหน่วยความจำ สถานะซ่อนเร้นนี้หมายความว่าสมุดบันทึกอาจแสดงผลลัพธ์ที่ถูกต้อง ทั้งที่การเรียกใช้ใหม่ตั้งแต่ต้นไม่สามารถทำซ้ำผลลัพธ์นั้นได้
แนวปฏิบัติที่ดีของสมุดบันทึกเกือบทั้งหมดมีไว้เพื่อจัดการกับสถานะซ่อนเร้น
เรียกใช้เซลล์ตามลำดับ
หมายเลขลำดับการเรียกใช้ (ตัวเลข [1], [2] ที่อยู่ข้างเซลล์) ควรเพิ่มขึ้นจากบนลงล่าง ตัวเลขที่ไม่เรียงลำดับ เช่น [7] อยู่เหนือ [3] เป็นสัญญาณเตือนว่าสมุดบันทึกอาศัยสถานะซ่อนเร้น
เขียนสมุดบันทึกให้สามารถอ่านต่อเนื่องจากบนลงล่างแล้วเข้าใจได้
เริ่มต้นเคอร์เนลใหม่และเรียกใช้ทั้งหมด
กฎทองคือ ก่อนเชื่อถือหรือบันทึกสมุดบันทึก ให้เลือก เคอร์เนล → เริ่มต้นใหม่ & เรียกใช้ทั้งหมด การดำเนินการนี้จะล้างหน่วยความจำและเรียกใช้ทุกเซลล์ตั้งแต่ต้น
หากทำงานได้อย่างราบรื่นจากบนลงล่าง สมุดบันทึกนั้นก็ทำซ้ำผลลัพธ์ได้ หากเกิดข้อผิดพลาด แสดงว่าคุณพบข้อบกพร่องจากสถานะซ่อนเร้นแล้ว
จัดเซลล์ให้มีจุดประสงค์ชัดเจน
การมีขั้นตอนเชิงตรรกะหนึ่งขั้นต่อเซลล์ช่วยให้สมุดบันทึกอ่านง่ายและเรียกใช้ซ้ำได้ หลีกเลี่ยงเซลล์ขนาดใหญ่ที่ทำงานสิบอย่าง และหลีกเลี่ยงการกระจายการดำเนินการเดียวไปไว้ในเซลล์เล็ก ๆ หลายเซลล์
ใช้เซลล์ Markdown เพื่อบรรยายส่วนต่าง ๆ ให้เหมือนรายงาน
ย้ายโค้ดที่นำกลับมาใช้ซ้ำได้ไปไว้ในโมดูล
เมื่อฟังก์ชันใดพิสูจน์แล้วว่ามีประโยชน์ ให้ย้ายฟังก์ชันนั้นออกจากสมุดบันทึกไปไว้ใน src/ แล้วนำเข้า วิธีนี้ทำให้สมุดบันทึกมีโค้ดน้อยลง ทำให้โค้ดทดสอบได้ และป้องกันไม่ให้โค้ดในสมุดบันทึกต่าง ๆ ค่อย ๆ แตกต่างกันจากการคัดลอกแล้ววาง
from src.features.build_features import make_features
X = make_features(df) # logic lives in a tested moduleปัญหาผลต่างของผลลัพธ์
สมุดบันทึกจะเก็บผลลัพธ์ของเซลล์ (ข้อความ ตารางขนาดใหญ่ และรูปภาพที่เข้ารหัสแบบ base64) ไว้ภายใน JSON ของ .ipynb การบันทึกผลลัพธ์เหล่านี้ทำให้ผลต่างของ Git มีขนาดใหญ่และเต็มไปด้วยข้อมูลรบกวน อีกทั้งอาจทำให้ข้อมูลรั่วไหล
วิธีแก้คือเอาผลลัพธ์ออกก่อนบันทึก
ล้างผลลัพธ์ด้วย nbstripout
nbstripout จะลบผลลัพธ์ออกจากสมุดบันทึกโดยอัตโนมัติ ติดตั้งเป็นตัวกรองของ Git เพื่อให้ผลลัพธ์ถูกลบออกทุกครั้งที่บันทึก โดยไม่ต้องคอยจำเอง
# pip install nbstripout
nbstripout --install # adds a git filter for this repo
# now committed notebooks have clean, output-free diffsกำหนดพารามิเตอร์ให้สมุดบันทึกด้วย papermill
papermill เรียกใช้สมุดบันทึกโดยอัตโนมัติพร้อมแทรกพารามิเตอร์เข้าไป คล้ายกับการเรียกใช้ฟังก์ชัน กำหนดเซลล์หนึ่งให้มีป้ายกำกับเป็น parameters แล้ว papermill จะแทนที่ค่าเหล่านั้นในการเรียกใช้แต่ละครั้ง
# pip install papermill
# papermill analysis.ipynb out.ipynb -p dataset "may.csv" -p seed 42การเรียกใช้แบบกำหนดพารามิเตอร์ในโค้ด
คุณยังสามารถควบคุม papermill จากภาษา Python เพื่อเรียกใช้สมุดบันทึกการวิเคราะห์เดียวกันกับข้อมูลนำเข้าหลายชุดได้ ซึ่งเป็นวิธีที่เป็นระเบียบสำหรับการทดลองแบบกลุ่ม
import papermill as pm
for ds in ["jan.csv", "feb.csv", "mar.csv"]:
pm.execute_notebook(
"analysis.ipynb",
f"out_{ds}.ipynb",
parameters={"dataset": ds, "seed": 42},
)รายการตรวจสอบความเรียบร้อยของสมุดบันทึก
ก่อนแบ่งปันหรือบันทึกสมุดบันทึก:
- เริ่มต้นเคอร์เนลใหม่และเรียกใช้ทั้งหมด — ต้องทำงานผ่านโดยไม่มีข้อผิดพลาด
- เซลล์ทำงานจากบนลงล่าง โดยหมายเลขลำดับเพิ่มขึ้น
- ย้ายตรรกะที่นำกลับมาใช้ซ้ำได้ไปไว้ในโมดูล
src/ - ล้างผลลัพธ์แล้ว (nbstripout)
- ใช้ Markdown บรรยายเนื้อหา
ตรวจสอบความเข้าใจ: การเชื่อถือสมุดบันทึก
ก่อนบันทึกสมุดบันทึก คุณต้องการยืนยันว่าผลลัพธ์ทำซ้ำได้และไม่มีข้อบกพร่องจากสถานะซ่อนเร้น
สรุป: แนวปฏิบัติที่ดีสำหรับสมุดบันทึก
คุณได้เรียนรู้วิธีรักษาสมุดบันทึกให้สะอาดและทำซ้ำผลลัพธ์ได้:
- จัดการสถานะซ่อนเร้น — เรียกใช้เซลล์ตามลำดับ
- เริ่มต้นใหม่ & เรียกใช้ทั้งหมด ก่อนเชื่อถือหรือบันทึก
- ย้ายโค้ดที่นำกลับมาใช้ซ้ำได้ไปไว้ในโมดูล
src/ - ใช้ nbstripout เพื่อล้างผลลัพธ์และทำให้ผลต่างของ Git สะอาด
- ใช้ papermill สำหรับการเรียกใช้สมุดบันทึกแบบกำหนดพารามิเตอร์และแบบกลุ่ม
หลักสูตรโครงสร้างโครงการปัญญาประดิษฐ์และกระบวนการทำงานด้วย Git จบลงเพียงเท่านี้
คำถามที่พบบ่อย
บทเรียน “แนวทางปฏิบัติที่ดีสำหรับ Jupyter Notebooks” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “แนวทางปฏิบัติที่ดีสำหรับ Jupyter Notebooks” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “แนวทางปฏิบัติที่ดีสำหรับ Jupyter Notebooks”
ใช้เซลล์ที่มีหมายเลข ล้างผลลัพธ์ให้ชัดเจนก่อนคอมมิต และใช้ papermill สำหรับการทำงานที่กำหนดพารามิเตอร์ คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “แนวทางปฏิบัติที่ดีสำหรับ Jupyter Notebooks” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม
ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โครงสร้างไดเรกทอรีโครงการปัญญาประดิษฐ์ระดับมืออาชีพ
- Git สำหรับโครงการปัญญาประดิษฐ์
- การทำซ้ำผลลัพธ์ได้: ค่าเริ่มต้น การตั้งค่า และสภาพแวดล้อม
- แนวทางปฏิบัติที่ดีสำหรับ Jupyter Notebooks