นักเทียบท่า ใช้ คอนเทนเนอร์ เพื่อสร้างสภาพแวดล้อมเสมือนจริงที่แยกการติดตั้ง TensorFlow ออกจากส่วนที่เหลือของระบบ โปรแกรม TensorFlow ทำงาน ภายใน สภาพแวดล้อมเสมือนจริงที่สามารถแบ่งปันทรัพยากรกับเครื่องโฮสต์ (เข้าถึงไดเร็กทอรี ใช้ GPU เชื่อมต่ออินเทอร์เน็ต เป็นต้น) อิมเมจ TensorFlow Docker ได้รับการทดสอบสำหรับแต่ละรีลีส
Docker เป็นวิธีที่ง่ายที่สุดในการเปิดใช้ การสนับสนุน TensorFlow GPU บน Linux เนื่องจากต้องใช้ ไดรเวอร์ NVIDIA® GPU บนเครื่อง โฮสต์ เท่านั้น (ไม่จำเป็นต้องติดตั้ง NVIDIA® CUDA® Toolkit )
ข้อกำหนดของ TensorFlow Docker
- ติดตั้ง Docker บนเครื่อง โฮสต์ ภายในของคุณ
- สำหรับการสนับสนุน GPU บน Linux ให้ติดตั้งการสนับสนุน NVIDIA Docker
- จดเวอร์ชัน Docker ของคุณด้วย
docker -v
เวอร์ชัน ก่อนหน้า 19.03 ต้องใช้ nvidia-docker2 และแฟล็ก--runtime=nvidia
ในเวอร์ชัน รวมถึงและหลัง 19.03 คุณจะใช้แพ็คเกจnvidia-container-toolkit
และแฟล็ก--gpus all
ตัวเลือกทั้งสองได้รับการบันทึกไว้ในหน้าที่ลิงก์ด้านบน
- จดเวอร์ชัน Docker ของคุณด้วย
ดาวน์โหลดอิมเมจ TensorFlow Docker
อิมเมจ TensorFlow Docker อย่างเป็นทางการอยู่ในที่เก็บ tensorflow/tensorflow Docker Hub การเผยแพร่ภาพ ถูกแท็ก โดยใช้รูปแบบต่อไปนี้:
แท็ก | คำอธิบาย |
---|---|
latest | อิมเมจไบนารี TensorFlow CPU รุ่นล่าสุด ค่าเริ่มต้น. |
nightly | สร้างอิมเมจ TensorFlow ทุกคืน (ไม่เสถียร.) |
version | ระบุ เวอร์ชัน ของอิมเมจไบนารี TensorFlow เช่น 2.8.3 |
แท็ก ฐานแต่ละรายการมีตัวแปรที่เพิ่มหรือเปลี่ยนฟังก์ชันการทำงาน:
ตัวแปรแท็ก | คำอธิบาย |
---|---|
tag -gpu | การเปิด ตัวแท็ก ที่ระบุพร้อมการรองรับ GPU ( ดูด้านล่าง ) |
tag -jupyter | การเปิด ตัวแท็ก ที่ระบุด้วย Jupyter (รวมถึงสมุดบันทึกการสอน TensorFlow) |
คุณสามารถใช้ตัวแปรหลายตัวพร้อมกันได้ ตัวอย่างเช่น ดาวน์โหลด TensorFlow ปล่อยอิมเมจต่อไปนี้ไปยังเครื่องของคุณ:
docker pull tensorflow/tensorflow # latest stable release
docker pull tensorflow/tensorflow:devel-gpu # nightly dev release w/ GPU support
docker pull tensorflow/tensorflow:latest-gpu-jupyter # latest release w/ GPU support and Jupyter
เริ่มคอนเทนเนอร์ TensorFlow Docker
ในการเริ่มคอนเทนเนอร์ที่กำหนดค่า TensorFlow ให้ใช้แบบฟอร์มคำสั่งต่อไปนี้:
docker run [-it] [--rm] [-p hostPort:containerPort] tensorflow/tensorflow[:tag] [command]
สำหรับรายละเอียด โปรดดูที่ docker run reference
ตัวอย่างการใช้อิมเมจเฉพาะ CPU
มาตรวจสอบการติดตั้ง TensorFlow โดยใช้รูปภาพที่ติดแท็ก latest
นักเทียบท่าจะดาวน์โหลดอิมเมจ TensorFlow ใหม่ในครั้งแรกที่รัน:
docker run -it --rm tensorflow/tensorflow \ python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
มาสาธิตสูตร TensorFlow Docker เพิ่มเติมกัน เริ่มเซสชัน bash
shell ภายในคอนเทนเนอร์ที่กำหนดค่า TensorFlow:
docker run -it tensorflow/tensorflow bash
ภายในคอนเทนเนอร์ คุณสามารถเริ่มเซสชัน python
และนำเข้า TensorFlow
ในการรันโปรแกรม TensorFlow ที่พัฒนาบนเครื่อง โฮสต์ ภายในคอนเทนเนอร์ ให้ติดตั้งไดเร็กทอรีโฮสต์และเปลี่ยนไดเร็กทอรีการทำงานของคอนเทนเนอร์ ( -v hostDir:containerDir -w workDir
):
docker run -it --rm -v $PWD:/tmp -w /tmp tensorflow/tensorflow python ./script.py
ปัญหาการอนุญาตอาจเกิดขึ้นเมื่อไฟล์ที่สร้างขึ้นภายในคอนเทนเนอร์ถูกเปิดเผยต่อโฮสต์ โดยปกติแล้ว การแก้ไขไฟล์ในระบบโฮสต์จะดีที่สุด
เริ่มเซิร์ฟเวอร์ Jupyter Notebook โดยใช้งานสร้างทุกคืนของ TensorFlow:
docker run -it -p 8888:8888 tensorflow/tensorflow:nightly-jupyter
ทำตามคำแนะนำและเปิด URL ในเว็บเบราว์เซอร์โฮสต์ของคุณ: http://127.0.0.1:8888/?token=...
รองรับ GPU
นักเทียบท่าเป็นวิธีที่ง่ายที่สุดในการเรียกใช้ TensorFlow บน GPU เนื่องจากเครื่อง โฮสต์ ต้องการเพียง ไดรเวอร์ NVIDIA® (ไม่จำเป็นต้องใช้ NVIDIA® CUDA® Toolkit )
ติดตั้ง Nvidia Container Toolkit เพื่อเพิ่มการรองรับ NVIDIA® GPU ให้กับ Docker nvidia-container-runtime
ใช้ได้กับ Linux เท่านั้น ดู คำถามที่พบบ่อยเกี่ยวกับการสนับสนุนแพลตฟอร์ม nvidia-container-runtime
สำหรับรายละเอียด
ตรวจสอบว่ามี GPU หรือไม่:
lspci | grep -i nvidia
ตรวจสอบการติดตั้ง nvidia-docker
ของคุณ:
docker run --gpus all --rm nvidia/cuda nvidia-smi
ตัวอย่างการใช้ภาพที่เปิดใช้งาน GPU
ดาวน์โหลดและเรียกใช้อิมเมจ TensorFlow ที่เปิดใช้งาน GPU (อาจใช้เวลาสักครู่):
docker run --gpus all -it --rm tensorflow/tensorflow:latest-gpu \ python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
อาจใช้เวลาสักครู่ในการตั้งค่าภาพที่เปิดใช้งาน GPU หากเรียกใช้สคริปต์ที่ใช้ GPU ซ้ำๆ คุณสามารถใช้ docker exec
เพื่อนำคอนเทนเนอร์กลับมาใช้ใหม่ได้
ใช้อิมเมจ TensorFlow GPU ล่าสุดเพื่อเริ่มเซสชัน bash
shell ในคอนเทนเนอร์:
docker run --gpus all -it tensorflow/tensorflow:latest-gpu bash