0Pricing
Learn AI with Python · บทเรียน

แนวทางปฏิบัติที่ดีสำหรับ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. โครงสร้างไดเรกทอรีโครงการปัญญาประดิษฐ์ระดับมืออาชีพ
  2. Git สำหรับโครงการปัญญาประดิษฐ์
  3. การทำซ้ำผลลัพธ์ได้: ค่าเริ่มต้น การตั้งค่า และสภาพแวดล้อม
  4. แนวทางปฏิบัติที่ดีสำหรับ Jupyter Notebooks
← กลับไปที่ Learn AI with Python