นักเทียบท่า ใช้ คอนเทนเนอร์ เพื่อสร้างสภาพแวดล้อมเสมือนที่แยกการติดตั้ง 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
flag ในเวอร์ชัน รวมถึงและหลัง 19.03 คุณจะใช้แพ็คเกจnvidia-container-toolkit
และ--gpus all
flag ตัวเลือกทั้งสองมีเอกสารอยู่ในหน้าที่ลิงก์ด้านบน
- จดบันทึกเวอร์ชัน 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]
สำหรับรายละเอียด โปรดดูที่ การอ้างอิงการเรียกใช้นักเทียบท่า
ตัวอย่างการใช้อิมเมจเฉพาะ 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=...
รองรับจีพียู
Docker เป็นวิธีที่ง่ายที่สุดในการรัน 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