Aracılığıyla paylaş


PyTorch

PyTorch projesi , derin öğrenme ağları oluşturmak için GPU hızlandırılmış tensor hesaplaması ve üst düzey işlevler sağlayan bir Python paketidir. Lisanslama ayrıntıları için GitHub'da PyTorch lisans belgesine bakın.

PyTorch modellerinizi izlemek ve hatalarını ayıklamak için TensorBoard kullanmayı göz önünde bulundurun.

PyTorch, Machine Learning için Databricks Runtime'a dahildir. Databricks Runtime kullanıyorsanız PyTorch'u yükleme yönergeleri için bkz. PyTorch'u yükleme.

Not

Bu, PyTorch için kapsamlı bir kılavuz değildir. Daha fazla bilgi için PyTorch web sitesine bakın.

Tek düğüm ve dağıtılmış eğitim

Tek makineli iş akışlarını test etmek ve geçirmek için Tek Düğümlü küme kullanın.

Derin öğrenme için dağıtılmış eğitim seçenekleri için bkz . Dağıtılmış eğitim.

Örnek not defterleri

MLflow PyTorch uçtan uca model eğitim not defteri

Not defterini alma

PyTorch not defteri

Not defterini alma

TensorFlow ile MLflow PyTorch modeli eğitim not defteri

Not defterini alma

PyTorch'u yükleme

ML için Databricks Runtime

Machine Learning için Databricks Runtime, kümeyi oluşturup PyTorch kullanmaya başlayabilmeniz için PyTorch içerir. Kullandığınız Databricks Runtime ML sürümünde yüklü PyTorch sürümü için sürüm notlarına bakın.

Databricks Çalışma Zamanı

Databricks, Machine Learning için Databricks Runtime'da bulunan PyTorch'ı kullanmanızı önerir. Ancak standart Databricks Runtime'ı kullanmanız gerekiyorsa PyTorch, Databricks PyPI kitaplığı olarak yüklenebilir. Aşağıdaki örnekte PyTorch 1.5.0'ın nasıl yükleneceği gösterilmektedir:

  • GPU kümelerinde aşağıdakileri belirterek ve pytorch yükleyintorchvision:

    • torch==1.5.0
    • torchvision==0.6.0
  • CPU kümelerinde aşağıdaki Python tekerlek dosyalarını kullanarak ve pytorch yükleyintorchvision:

    https://download.pytorch.org/whl/cpu/torch-1.5.0%2Bcpu-cp37-cp37m-linux_x86_64.whl
    
    https://download.pytorch.org/whl/cpu/torchvision-0.6.0%2Bcpu-cp37-cp37m-linux_x86_64.whl
    

Dağıtılmış PyTorch için hatalar ve sorun giderme

Aşağıdaki bölümlerde, sınıflar için yaygın hata iletileri ve sorun giderme yönergeleri açıklanmaktadır: PyTorch DataParallel veya PyTorch DistributedDataParallel. Bu hataların çoğu büyük olasılıkla Databricks Runtime ML 13.0 ve üzerinde bulunan TorchDistributor ile çözülebilir. Ancak, uygun bir çözüm değilse TorchDistributor , her bölümde önerilen çözümler de sağlanır.

TorchDistributor'ın nasıl kullanılacağına ilişkin bir örnek aşağıda verilmiştir:


from pyspark.ml.torch.distributor import TorchDistributor

def train_fn(learning_rate):
        # ...

num_processes=2
distributor = TorchDistributor(num_processes=num_processes, local_mode=True)

distributor.run(train_fn, 1e-3)

işlem 0 çıkış kodu 1 ile sonlandırıldı

Databricks'te veya yerel olarak not defterleri kullanılırken aşağıdaki hata oluşabilir:

process 0 terminated with exit code 1

Bu hatayı önlemek için torch.multiprocessing.start_processesyerine start_method=fork ile torch.multiprocessing.spawn kullanın.

Örneğin:

import torch

def train_fn(rank, learning_rate):
    # required setup, e.g. setup(rank)
        # ...

num_processes = 2
torch.multiprocessing.start_processes(train_fn, args=(1e-3,), nprocs=num_processes, start_method="fork")

Sunucu yuvası bağlantı noktasına bağlanamadı

Eğitim sırasında hücreyi kesintiye uğrattıktan sonra dağıtılmış eğitimi yeniden başlattığınızda aşağıdaki hata görüntülenir:

The server socket has failed to bind to [::]:{PORT NUMBER} (errno: 98 - Address already in use).

Sorunu düzeltmek için kümeyi yeniden başlatın. Yeniden başlatma sorunu çözmezse, eğitim işlevi kodunda bir hata olabilir.

CUDA uyumlu olmadığından CUDA start_method=”fork”ile ilgili ek sorunlarla karşılaşabilirsiniz. Herhangi bir hücrede herhangi bir .cuda komut kullanmak hatalara neden olabilir. Bu hataları önlemek için çağrısından torch.multiprocessing.start_methodönce aşağıdaki denetimi ekleyin:

if torch.cuda.is_initialized():
    raise Exception("CUDA was initialized; distributed training will fail.") # or something similar