Çalışma dizinini değiştirme
Verilerinde derin sinir ağları eğitmeni sağlayan açık kaynaklı bir kütüphane kullanıyorsun. Ne yazık ki eğitim sırasında bu kütüphane, kontrol noktası modellerini (yani verinin bir kısmıyla eğitilmiş modelleri) geçerli çalışma dizinine yazıyor. Bu davranış can sıkıcı, çünkü modellerin kaydedileceği dizinden betiği başlatmak zorunda kalmak istemiyorsun.
Bunu düzeltmenin bir yolu olarak, geçerli çalışma dizinini değiştiren, modellerini oluşturmanı sağlayan ve ardından çalışma dizinini eski konumuna sıfırlayan bir context manager yazmaya karar veriyorsun. Model eğitimi sırasında oluşabilecek hataların, çalışma dizinini eski konumuna sıfırlamana engel olmamasını sağlamalısın.
Bu egzersiz
Python'da Fonksiyon Yazımı
kursunun bir parçasıdırEgzersiz talimatları
- Context içinde oluşabilecek hataları yakalayabilmek için bir ifade ekle.
- Hata olsun ya da olmasın
os.chdir(current_dir)çağrılmasını garanti eden bir ifade ekle.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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)