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 defteri
PyTorch not defteri
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 Runtime
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
torchvision
yükleyinpytorch
:torch==1.5.0
torchvision==0.6.0
CPU kümelerinde aşağıdaki Python tekerlek dosyalarını kullanarak ve
torchvision
yükleyinpytorch
: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ı"
Bu hata, ortam ne olursa olsun not defterleri kullanılırken oluşur: Databricks, yerel makine vb. Bu hatayı önlemek için yerine torch.multiprocessing.spawn
ile start_method=fork
kullanıntorch.multiprocessing.start_processes
.
Ö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ı [::]:{PORT NUMBER} öğesine bağlanamadı (errno: 98 - Adres zaten kullanılıyor)."
Bu hata, eğitim sırasında hücreyi kesintiye uğrattıktan sonra dağıtılmış eğitimi yeniden başlattığınızda görüntülenir.
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 ile ilgili hatalar
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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin