Ubuntu + pytorch + cuda (opsional)
Untuk menggunakan gambar ini, Anda harus memasang mesin Docker. Instruksi untuk menyiapkan mesin Docker tersedia di situs web Docker.
Jika Anda memiliki kartu grafis NVIDIA yang kompatibel dengan CUDA, Anda dapat menggunakan versi gambar Pytorch yang mendukung CUDA untuk mengaktifkan akselerasi perangkat keras. Saya hanya menguji ini di Ubuntu Linux.
Pertama, pastikan Anda menginstal driver NVIDIA yang sesuai. Di Ubuntu, saya telah menemukan bahwa cara termudah untuk memastikan bahwa Anda memiliki versi yang tepat dari pengaturan driver adalah dengan menginstal versi CUDA setidaknya sama baru dengan gambar yang ingin Anda gunakan melalui halaman unduhan resmi NVIDIA CUDA. Sebagai contoh, jika Anda bermaksud menggunakan gambar cuda-10.1 kemudian mengatur CUDA 10.1 atau CUDA 10.2 harus memastikan bahwa Anda memiliki driver grafik yang benar.
Anda juga perlu menginstal NVIDIA Container Toolkit untuk mengaktifkan akses perangkat GPU dalam wadah Docker. Ini dapat ditemukan di NVIDIA/NVIDIA-Docker.
Gambar prebuilt tersedia di Docker Hub dengan nama Anibali/Pytorch.
Misalnya, Anda dapat menarik gambar dengan Pytorch 2.0.1 dan Cuda 11.8 menggunakan:
$ docker pull anibali/pytorch:2.0.1-cuda11.8 Dimungkinkan untuk menjalankan program Pytorch di dalam wadah menggunakan perintah python3 . Misalnya, jika Anda berada dalam direktori yang berisi beberapa proyek Pytorch dengan entrypoint main.py , Anda dapat menjalankannya dengan perintah berikut:
docker run --rm -it --init
--gpus=all
--ipc=host
--user= " $( id -u ) : $( id -g ) "
--volume= " $PWD :/app "
anibali/pytorch python3 main.pyBerikut deskripsi opsi baris perintah Docker yang ditunjukkan di atas:
--gpus=all : Diperlukan jika menggunakan cuda, opsional sebaliknya. Melewati kartu grafis dari host ke wadah. Anda juga dapat lebih tepat mengontrol kartu grafis mana yang terpapar menggunakan opsi ini (lihat dokumentasi di https://github.com/nvidia/nvidia-docker).--ipc=host : Diperlukan jika menggunakan multiprocessing, seperti yang dijelaskan di https://github.com/pytorch/pytorch#docker-image.--user="$(id -u):$(id -g)" : Mengatur pengguna di dalam wadah agar sesuai dengan pengguna dan ID grup Anda. Opsional, tetapi berguna untuk menulis file dengan kepemilikan yang benar.--volume="$PWD:/app" : Memasang direktori kerja saat ini ke dalam wadah. Direktori kerja default di dalam wadah IS /app . Opsional.Jika Anda menjalankan pada host Linux, Anda bisa menjalankan kode di dalam wadah Docker untuk menampilkan grafik menggunakan host x server (ini memungkinkan Anda untuk menggunakan iMshow OpenCV, misalnya). Di sini kami menggambarkan cara cepat dan kotor (tetapi tidak aman) untuk melakukan ini. Untuk panduan yang lebih komprehensif tentang GUIS dan Docker, periksa http://wiki.ros.org/docker/tutorials/gui.
Di host run:
sudo xhost +local:root Anda dapat mencabut izin akses ini nanti dengan sudo xhost -local:root . Sekarang ketika Anda menjalankan wadah, pastikan Anda menambahkan opsi -e "DISPLAY" dan --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" . Ini akan memberikan wadah dengan soket X11 Anda untuk komunikasi dan ID tampilan Anda. Inilah contohnya:
docker run --rm -it --init
--gpus=all
-e " DISPLAY " --volume= " /tmp/.X11-unix:/tmp/.X11-unix:rw "
anibali/pytorch python3 -c " import tkinter; tkinter.Tk().mainloop() "Cara yang disarankan untuk menambahkan dependensi tambahan ke gambar adalah dengan membuat DockerFile Anda sendiri menggunakan salah satu gambar Pytorch dari proyek ini sebagai basis.
Misalnya, katakanlah Anda memerlukan OpenCV dan ingin bekerja dengan Pytorch 2.0.1. Anda dapat membuat DockerFile Anda sendiri menggunakan anibali/pytorch:2.0.1-cuda11.8-ubuntu22.04 sebagai gambar dasar dan instal OpenCV menggunakan langkah build tambahan:
FROM anibali/pytorch:2.0.1-cuda11.8-ubuntu22.04
# Set up time zone.
ENV TZ=UTC
RUN sudo ln -snf /usr/share/zoneinfo/$TZ /etc/localtime
# Install system libraries required by OpenCV.
RUN sudo apt-get update
&& sudo apt-get install -y libgl1-mesa-glx libgtk2.0-0 libsm6 libxext6
&& sudo rm -rf /var/lib/apt/lists/*
# Install OpenCV from PyPI.
RUN pip install opencv-python==4.5.1.48 DockerFiles di dockerfiles/ Direktori secara otomatis dihasilkan oleh manager.py Script menggunakan detail dalam images.yml dan templat dalam templates/ .
Berikut adalah contoh alur kerja yang menggambarkan cara membuat DockerFile baru.
templates/ jika tidak ada yang ada yang sesuai.images.yml (lihat entri yang ada untuk contoh).python manager.py . Direktori baru yang berisi DockerFile akan dibuat di dockerfiles/ .