เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การเปลี่ยน working directory

คุณกำลังใช้ไลบรารีโอเพนซอร์สสำหรับฝึก deep neural network กับข้อมูลของคุณ แต่มีปัญหาอยู่อย่างหนึ่ง คือระหว่างการฝึกโมเดล ไลบรารีนี้จะบันทึก checkpoint model (คือโมเดลที่ฝึกมาแล้วบางส่วน) ลงใน working directory ปัจจุบัน ซึ่งค่อนข้างน่ารำคาญ เพราะไม่อยากต้องรันสคริปต์จากโฟลเดอร์เดียวกับที่บันทึกโมเดลทุกครั้ง

วิธีแก้ปัญหาที่เลือกใช้คือเขียน context manager ที่เปลี่ยน working directory ปัจจุบัน ให้สร้างโมเดลได้ตามต้องการ แล้วรีเซ็ต working directory กลับไปยังตำแหน่งเดิม สิ่งสำคัญคือต้องมั่นใจว่าหากเกิดข้อผิดพลาดระหว่างการฝึกโมเดล working directory จะถูกรีเซ็ตกลับเสมอ ไม่ว่าจะเกิดอะไรขึ้น

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การเขียนฟังก์ชันใน Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เพิ่มคำสั่งสำหรับจัดการข้อผิดพลาดที่อาจเกิดขึ้นภายใน context
  • เพิ่มคำสั่งที่รับประกันว่า os.chdir(current_dir) จะถูกเรียกใช้เสมอ ไม่ว่าจะเกิดข้อผิดพลาดหรือไม่ก็ตาม

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

def in_dir(directory):
  """Change current working directory to `directory`,
  allow the user to run some code, and change back.

  Args:
    directory (str): The path to a directory to work in.
  """
  current_dir = os.getcwd()
  os.chdir(directory)

  # Add code that lets you handle errors
  ____:
    yield
  # Ensure the directory is reset,
  # whether there was an error or not
  ____:
    os.chdir(current_dir)
แก้ไขและรันโค้ด