Google I/O is a wrap! Catch up on TensorFlow sessions View sessions

นักเทียบท่า

นักเทียบท่า ใช้ คอนเทนเนอร์ เพื่อสร้างสภาพแวดล้อมเสมือนที่แยกการติดตั้ง TensorFlow ออกจากส่วนที่เหลือของระบบ โปรแกรม TensorFlow ทำงาน ภายใน สภาพแวดล้อมเสมือนนี้ซึ่งสามารถแชร์ทรัพยากรกับเครื่องโฮสต์ได้ (เข้าถึงไดเรกทอรีใช้ GPU เชื่อมต่ออินเทอร์เน็ต ฯลฯ ) อิมเมจ TensorFlow Docker ได้รับการทดสอบสำหรับแต่ละรุ่น

Docker เป็นวิธีที่ง่ายที่สุดในการเปิดใช้งานการรองรับ TensorFlow GPU บน Linux เนื่องจากต้องใช้ ไดรเวอร์NVIDIA® GPU บนเครื่อง โฮสต์เท่านั้น (ไม่จำเป็นต้องติดตั้ง NVIDIA®CUDA® Toolkit )

ข้อกำหนดของ TensorFlow Docker

  1. ติดตั้ง Docker บนเครื่อง โฮสต์ ภายในของคุณ
  2. สำหรับการรองรับ GPU บน Linux ให้ ติดตั้งการรองรับ NVIDIA Docker
    • จดบันทึกเวอร์ชัน Docker ของคุณด้วย docker -v เวอร์ชัน ก่อนหน้า 19.03 ต้องการ nvidia-docker2 และ --runtime=nvidia ในเวอร์ชันที่ รวมถึงและหลัง 19.03 คุณจะใช้แพ็คเกจ nvidia-container-toolkit และ --gpus all ตัวเลือกทั้งสองได้รับการบันทึกไว้ในหน้าที่ลิงก์ด้านบน

ดาวน์โหลดอิมเมจ TensorFlow Docker

อิมเมจ TensorFlow Docker อย่างเป็นทางการจะอยู่ในที่ เก็บ tensorflow / tensorflow Docker Hub การเผยแพร่รูปภาพ จะถูกแท็ก โดยใช้รูปแบบต่อไปนี้:

แท็ก คำอธิบาย
latest ภาพไบนารี TensorFlow CPU รุ่นล่าสุด ค่าเริ่มต้น.
nightly สร้างภาพ TensorFlow ในเวลากลางคืน (ไม่เสถียร)
version ระบุ เวอร์ชัน ของภาพไบนารี TensorFlow ตัวอย่างเช่น: 2.1.0
devel สร้างสภาพแวดล้อมการพัฒนา master TensorFlow ทุกคืน รวมซอร์สโค้ด TensorFlow
custom-op ภาพการทดลองพิเศษสำหรับการพัฒนาตัวเลือกที่กำหนดเองของ TF ข้อมูลเพิ่มเติม ที่นี่

แท็ก พื้นฐานแต่ละ แท็ก มีตัวแปรที่เพิ่มหรือเปลี่ยนแปลงฟังก์ชันการทำงาน:

แท็กตัวแปร คำอธิบาย
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=...

รองรับ GPU

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 ติดตั้ง 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