वर्किंग डायरेक्टरी बदलना
आप एक ओपन-सोर्स लाइब्रेरी इस्तेमाल कर रहे हैं जो आपके डेटा पर डीप न्यूरल नेटवर्क ट्रेन करने देती है। दुर्भाग्य से, ट्रेनिंग के दौरान यह लाइब्रेरी चेकपॉइंट मॉडल्स (अर्थात, ऐसे मॉडल्स जो डेटा के एक हिस्से पर ट्रेन हुए हैं) मौजूदा वर्किंग डायरेक्टरी में लिख देती है। यह व्यवहार आपको परेशान करता है क्योंकि आप स्क्रिप्ट उसी डायरेक्टरी से लॉन्च नहीं करना चाहते जहाँ मॉडल्स सेव होंगे।
आप तय करते हैं कि इसका एक हल यह है कि आप एक कॉन्टेक्स्ट मैनेजर लिखें जो करंट वर्किंग डायरेक्टरी बदल दे, आपको अपने मॉडल्स बनाने दे, और फिर वर्किंग डायरेक्टरी को उसकी मूल लोकेशन पर रीसेट कर दे। आप यह सुनिश्चित करना चाहेंगे कि मॉडल ट्रेनिंग के दौरान होने वाली कोई भी त्रुटि वर्किंग डायरेक्टरी को उसकी मूल लोकेशन पर रीसेट होने से न रोके।
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Functions लिखना
अभ्यास निर्देश
- ऐसा स्टेटमेंट जोड़ें जो कॉन्टेक्स्ट के अंदर होने वाली किसी भी त्रुटि को हैंडल करने दे।
- ऐसा स्टेटमेंट जोड़ें जो यह सुनिश्चित करे कि
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)