öğretici: Azure Machine Learning bir Python betiği ile çalışmaya başlama (bölüm 1/3)

Bu öğreticide, ilk Python komut dosyanızı Azure Machine Learning ile bulutta çalıştırırsınız. Bu öğretici, üç bölümden oluşan bir öğretici serisinin 1. parçasıdır.

Bu öğretici, bir makine öğrenimi modeline eğitim karmaşıklığını önler. Bulutta bir "Merhaba Dünya" Python betiği çalıştıracaksınız. Azure Machine Learning ' de bir çalıştırma yapılandırmak ve oluşturmak için bir denetim betiğinin nasıl kullanıldığını öğreneceksiniz.

Bu öğreticide şunları yapacaksınız:

  • "Merhaba Dünya!" oluşturma ve çalıştırma Python betiği.
  • "Hello World!" göndermek için bir Python denetim betiği oluşturun Azure Machine Learning.
  • denetim betiğinin Azure Machine Learning kavramlarını anlayın.
  • "Hello World!" öğesini gönder ve Çalıştır SCRIPT.
  • Kod çıktılarınızı bulutta görüntüleyin.

Önkoşullar

  • hızlı başlangıç: bu öğretici serisinde kullanılacak bir çalışma alanı, işlem örneği ve işlem kümesi oluşturmak için Azure Machine Learning kullanmaya başlamak üzere çalışma alanınızı ayarlayın .

Python betiği oluşturma ve çalıştırma

Bu öğretici, geliştirme bilgisayarınız olarak bilgi işlem örneğini kullanacaktır. İlk olarak birkaç klasör ve betiği oluşturun:

  1. Azure Machine Learning studio 'da oturum açın ve istenirse çalışma alanınızı seçin.
  2. Sol tarafta, Not defterleri ' ni seçin.
  3. Dosyalar araç çubuğunda, öğesini seçin + ve Yeni klasör oluştur' u seçin. Ekran görüntüsü araç çubuğunda Yeni Klasör Oluştur aracını gösterir.
  4. Klasörü Al-başlatıldı olarak adlandırın.
  5. Klasör adının sağında, Get-Started altında başka bir klasör oluşturmak için ... öğesini kullanın. Ekran görüntüsü, alt klasör oluştur menüsünü gösterir.
  6. Yeni kaynak klasörünü adlandırın. Dosya konumu doğru değilse Konumu Düzenle bağlantısını kullanın.
  7. Src klasörünün sağında , src klasöründe yeni bir dosya oluşturmak için ... öğesini kullanın.
  8. Dosyanızı Hello.py olarak adlandırın. Dosya türünü Python (. köpek) * olarak değiştirin.

Bu kodu dosyanıza kopyalayın:

# src/hello.py
print("Hello world!")

Proje klasörü yapınız şöyle görünür:

Klasör yapısı src alt klasöründeki hello.py gösterir.

Betiğinizi test etme

Kodunuzu yerel olarak çalıştırabilirsiniz. bu durum, işlem örneği üzerinde anlamına gelir. Kodu yerel olarak çalıştırmak kodun etkileşimli hata ayıklamasının avantajına sahiptir.

Daha önce işlem örneğinizi durdurduysanız, şimdi işlem açılan menüsünde işlem başlatma aracıyla başlatın. Durumun çalışır durumda olması için bir dakika bekleyin.

Ekran görüntüsü, durdurulmuşsa işlem örneğinin başlamasını gösterir

Betiği çalıştırmak için terminalde Kaydet ve betiği Çalıştır ' ı seçin.

Ekran görüntüsü, araç çubuğundaki Terminal aracında Kaydet ve Çalıştır komut dosyasını gösterir

Komut dosyasının çıktısını açılan Terminal penceresinde görürsünüz. Sekmeyi kapatın ve oturumu kapatmak için Sonlandır ' ı seçin.

Denetim betiği oluşturma

Bir Denetim betiği , hello.py komut dosyanızı farklı işlem kaynakları üzerinde çalıştırmanızı sağlar. Machine Learning kodunuzun nasıl ve nerede çalıştırılacağını denetlemek için denetim betiğini kullanın.

Yeni bir dosya oluşturmak için, Get-Started klasörünün sonundaki ... öğesini seçin. Run-Hello.py adlı bir Python dosyası oluşturun ve aşağıdaki kodu kopyalayın/bu dosyaya yapıştırın:

# get-started/run-hello.py
from azureml.core import Workspace, Experiment, Environment, ScriptRunConfig

ws = Workspace.from_config()
experiment = Experiment(workspace=ws, name='day1-experiment-hello')

config = ScriptRunConfig(source_directory='./src', script='hello.py', compute_target='cpu-cluster')

run = experiment.submit(config)
aml_url = run.get_portal_url()
print(aml_url)

İpucu

İşlem kümenizi oluştururken farklı bir ad kullandıysanız, koddaki adı da ayarladığınızdan emin olun compute_target='cpu-cluster' .

Kodu anlama

Denetim betiğinin nasıl çalıştığına ilişkin bir açıklama aşağıda verilmiştir:

ws = Workspace.from_config()

çalışma alanı Azure Machine Learning çalışma alanınıza bağlanarak Azure Machine Learning kaynaklarınızla iletişim kurabilirsiniz.

experiment = Experiment( ... )

Deneme , tek bir ad altında birden çok çalıştırma düzenlemek için basit bir yol sağlar. Daha sonra, denemeleri 'ın onlarca çalışma arasında ölçümleri karşılaştırmayı nasıl kolaylaştıradiğini görebilirsiniz.

config = ScriptRunConfig( ... )

ScriptRunConfig kodunuzu sarmalar hello.py ve çalışma alanınıza geçirir. Adından da anlaşılacağı gibi, bu sınıfı kullanarak betiğinizi Azure Machine Learning ' de nasıl çalıştırmak istediğinizi yapılandırabilirsiniz . Ayrıca, betiğin çalışacağı işlem hedefini de belirtir. Bu kodda, hedef, Kurulum öğreticisindeoluşturduğunuz işlem kümesidir.

run = experiment.submit(config)

Betiğinizi gönderir. Bu gönderim bir çalıştırmaolarak adlandırılır. Bir çalıştırma, kodunuzun tek bir yürütmesini kapsüller. Betik ilerlemesini izlemek için bir çalıştırma kullanın, çıktıyı yakalayın, sonuçları çözümleyin, ölçümleri görselleştirin ve daha fazlasını yapın.

aml_url = run.get_portal_url()

runNesnesi, kodunuzun yürütülmesi üzerinde bir tanıtıcı sağlar. Azure Machine Learning studio 'dan, Python betiğiyle yazdırılan URL ile ilerleme durumunu izleyin.

Kodunuzu buluta gönderme ve çalıştırma

  1. Denetim betiğinizi çalıştırmak için Terminal Içinde Kaydet ve betiği Çalıştır ' ı seçin ve ardından hello.py Kurulum öğreticisindeoluşturduğunuz işlem kümesi üzerinde çalışır.

  2. Terminalde, kimlik doğrulaması için oturum açmanız istenebilir. Kodu kopyalayın ve bu adımı gerçekleştirmek için bağlantıyı izleyin.

  3. Kimlik doğrulamasından sonra terminalde bir bağlantı görürsünüz. Çalıştırmayı görüntülemek için bağlantıyı seçin.

    Not

    Yükleme sırasında hata... ile başlayan bazı azureml_run_type_providers. Bu uyarıları yoksayabilirsiniz. Çıkışınızı görüntülemek için bu uyarıların altındaki bağlantıyı kullanın.

Çıktıyı görüntüleme

  1. Açılan sayfada çalışma durumunu görürsünüz.
  2. Çalıştırmanın durumu tamamlandığında, sayfanın en üstündeki Çıkış + Günlükler ' i seçin.
  3. Çalıştırlarınızın çıkışını görüntülemek için 70_driver_log.txt seçin.

Kodunuzda kodunuzu bulutta izleyin

Betiğinizdeki çıktı, aşağıdaki gibi görünen bir Studio bağlantısı içerir: https://ml.azure.com/experiments/hello-world/runs/<run-id>?wsid=/subscriptions/<subscription-id>/resourcegroups/<resource-group>/workspaces/<workspace-name> .

Bağlantıyı izleyin. İlk olarak, kuyruğa alındı veya hazırlanıyor durumunu görürsünüz. İlk çalıştırmanın tamamlanması 5-10 dakika sürer. Bunun nedeni aşağıdakiler olur:

  • Bir Docker görüntüsü bulutta yerleşiktir
  • İşlem kümesi 0 ' dan 1 düğümden yeniden boyutlandırılır
  • Docker görüntüsü, işlem için indirilir.

Sonraki çalıştırmalar, Docker görüntüsü işlem üzerinde önbelleğe alındığı için çok daha hızlıdır (~ 15 saniye). İlk çalıştırma tamamlandıktan sonra kodu aşağıdaki kodu yeniden göndererek test edebilirsiniz.

Yaklaşık 10 dakika bekleyin. Çalıştırmanın tamamlandığını belirten bir ileti görürsünüz. Sonra durum değişikliğini tamamlandı olarak görmek için Yenile ' yi kullanın. İş tamamlandıktan sonra çıktılar + Günlükler sekmesine gidin. Aşağıdakine benzer bir dosya görebilirsiniz 70_driver_log.txt :

 1: [2020-08-04T22:15:44.407305] Entering context manager injector.
 2: [context_manager_injector.py] Command line Options: Namespace(inject=['ProjectPythonPath:context_managers.ProjectPythonPath', 'RunHistory:context_managers.RunHistory', 'TrackUserError:context_managers.TrackUserError', 'UserExceptions:context_managers.UserExceptions'], invocation=['hello.py'])
 3: Starting the daemon thread to refresh tokens in background for process with pid = 31263
 4: Entering Run History Context Manager.
 5: Preparing to call script [ hello.py ] with arguments: []
 6: After variable expansion, calling script [ hello.py ] with arguments: []
 7:
 8: Hello world!
 9: Starting the daemon thread to refresh tokens in background for process with pid = 31263
10:
11:
12: The experiment completed successfully. Finalizing run...
13: Logging experiment finalizing status in history service.
14: [2020-08-04T22:15:46.541334] TimeoutHandler __init__
15: [2020-08-04T22:15:46.541396] TimeoutHandler __enter__
16: Cleaning up all outstanding Run operations, waiting 300.0 seconds
17: 1 items cleaning up...
18: Cleanup took 0.1812913417816162 seconds
19: [2020-08-04T22:15:47.040203] TimeoutHandler __exit__
  1. satırda "Merhaba Dünya!" öğesini görürsünüz. çıktıların.

70_driver_log.txtDosya, bir çalıştırmanın standart çıktısını içerir. Bu dosya, bulutta uzak çalıştırmaları hata ayıkladığınızda yararlı olabilir.

Sonraki adımlar

Bu öğreticide, basit bir "Hello World!" gerçekleştirdiğimiz betiği oluşturup Azure 'da çalıştırdık. Azure Machine Learning çalışma alanınıza bağlanmayı, deneme oluşturmayı ve hello.py kodunuzu buluta göndermeyi gördünüz.

Sonraki öğreticide, ' den daha ilginç bir şey çalıştırarak bu dersleri üzerinde derleyebilirsiniz print("Hello world!") .

Not

Öğretici serisini burada bitirebilmeniz ve bir sonraki adımda ilerlemeniz istiyorsanız kaynaklarınızı temizlemeyiunutmayın.