Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
PyTorch adalah paket Python yang menyediakan komputasi tensor yang dipercepat-GPU dan fungsionalitas tingkat tinggi untuk membangun jaringan pembelajaran mendalam. Untuk detail lisensi, lihat dokumen lisensi PyTorch di GitHub.
Untuk memantau dan men-debug model PyTorch Anda, pertimbangkan untuk menggunakan TensorBoard.
PyTorch disertakan dalam Databricks Runtime untuk Pembelajaran Mesin. Jika Anda menggunakan Runtime Databricks, lihat Menginstal PyTorch untuk petunjuk tentang menginstal PyTorch.
Catatan
Ini bukan panduan komprehensif untuk PyTorch. Untuk informasi selengkapnya, lihat situs web PyTorch .
Node tunggal dan pelatihan terdistribusi
Untuk menguji dan memigrasikan alur kerja mesin tunggal, gunakan Kluster Node Tunggal.
Untuk opsi pelatihan terdistribusi untuk pembelajaran mendalam, lihat Pelatihan terdistribusi.
Contoh buku catatan
Notebook pelatihan model end-to-end MLflow PyTorch
Notebook PyTorch
Buku catatan pelatihan model MLflow PyTorch dengan TensorFlow
Pasang PyTorch
Databricks Runtime untuk Pembelajaran Mesin
Databricks Runtime untuk Pembelajaran Mesin menyertakan PyTorch sehingga Anda dapat membuat kluster dan mulai menggunakan PyTorch. Untuk versi PyTorch yang dipasang dalam versi Databricks Runtime ML yang Anda gunakan, lihat catatan rilis.
Databricks Runtime
Databricks merekomendasikan agar Anda menggunakan PyTorch yang disertakan dalam Databricks Runtime untuk Pembelajaran Mesin. Namun, jika Anda harus menggunakan Databricks Runtime standar, PyTorch dapat diinstal sebagai pustaka Databricks PyPI. Contoh berikut menunjukkan cara menginstal PyTorch 1.5.0:
Pada kluster GPU, instal
pytorchdantorchvisiondengan menentukan yang berikut:torch==1.5.0torchvision==0.6.0
Pada kluster CPU, instal
pytorchdantorchvisiondengan menggunakan file roda Python berikut: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
Kesalahan dan pemecahan masalah untuk PyTorch terdistribusi
Bagian berikut menjelaskan pesan kesalahan umum dan panduan pemecahan masalah untuk kelas: PyTorch DataParallel atau PyTorch DistributedDataParallel. Sebagian besar kesalahan ini kemungkinan dapat diatasi dengan TorchDistributor, yang tersedia di Databricks Runtime ML 13.0 ke atas. Namun, jika TorchDistributor bukan solusi yang layak, solusi yang direkomendasikan juga disediakan dalam setiap bagian.
Berikut ini adalah contoh cara menggunakan TorchDistributor:
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)
proses 0 dihentikan dengan kode keluar 1
Kesalahan berikut dapat terjadi saat menggunakan buku catatan di Databricks atau secara lokal:
process 0 terminated with exit code 1
Untuk menghindari kesalahan ini, gunakan torch.multiprocessing.start_processes dengan start_method=fork alih-alih torch.multiprocessing.spawn.
Contohnya:
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")
Soket server gagal mengikat ke port
Kesalahan berikut muncul saat Anda memulai ulang pelatihan terdistribusi setelah mengganggu sel selama pelatihan:
The server socket has failed to bind to [::]:{PORT NUMBER} (errno: 98 - Address already in use).
Untuk memperbaiki masalah, mulai ulang kluster. Jika memulai ulang tidak menyelesaikan masalah, mungkin ada kesalahan dalam kode fungsi pelatihan.
Kesalahan terkait CUDA
Anda dapat mengalami masalah tambahan dengan CUDA karena start_method=”fork”tidak kompatibel dengan CUDA. Menggunakan perintah apa pun .cuda di sel apa pun dapat menyebabkan kegagalan. Untuk menghindari kesalahan ini, tambahkan pemeriksaan berikut sebelum Anda memanggil torch.multiprocessing.start_method:
if torch.cuda.is_initialized():
raise Exception("CUDA was initialized; distributed training will fail.") # or something similar