วิธีติดตั้ง TensorFlow บน Windows 10

ช่วงวันหยุดสุดสัปดาห์มีเวลา เลยลองเล่น TensorFlow ดู (สำหรับคนที่ไม่รู้จักว่า TensorFlow คืออะไร อ่าน)

ตอนแรกพยายามติดตั้งบนลินุกซ์ ใช้เวลาลองผิดลองถูกอยู่นาน พบว่า TensorFlow นี่เข้มงวดกับเวอร์ชันของซอฟต์แวร์มาก ต้องใช้เวอร์ชันที่ระบุไว้ในเอกสารเท่านั้น เก่าเกินหรือใหม่เกินไปก็ไม่ได้

สำหรับตอนนี้ (กรกฎาคม 2017) การติดตั้ง TensorFlow 1.2 บนลินุกซ์ ต้องใช้เวอร์ชันซอฟต์แวร์ดังนี้ (อ้างอิง Installing TensorFlow on Ubuntu)

  • Ubuntu 14.04 LTS หรือ 16.04 LTS
  • NVIDIA CUDA Toolkit 8.0
  • NVIDIA cuDNN 5.1 (ตอนนี้มีเวอร์ชัน 6.0 แล้ว ใหม่เกิน ห้ามใช้)
  • Python 2.7 หรือ 3.x

ทดลองอยู่นานและพบว่าติดตั้งได้ แต่ใช้งานไม่ได้ เนื่องจากใช้ Ubuntu 17.04 ตัวใหม่ล่าสุดในตอนนี้ ซึ่งใหม่เกินไป และ TensorFlow ยังไม่ซัพพอร์ตอย่างเป็นทางการ

จะลงใหม่ก็ขี้เกียจแล้ว เลยเปลี่ยนมาติดตั้ง TensorFlow บนวินโดวส์แทน พบว่าง่ายกว่าหน่อยด้วย เลยมาบันทึกไว้เผื่อเป็นประโยชน์ (อ้างอิงจาก Installing TensorFlow on Windows)

การรัน TensorFlow ในตอนนี้ ยังรองรับเฉพาะ GPU ค่าย NVIDIA เท่านั้น (Intel/AMD หมดสิทธิ) แต่ถ้าไม่เน้นประสิทธิภาพอะไรมาก เน้นลองใช้งานเป็นหลัก ก็สามารถรัน TensorFlow บน CPU อย่างเดียวโดยไม่ต้องใช้พลังของ GPU ได้เช่นกัน (แถมลงง่ายกว่าด้วย)

แต่ไหนเลยเรามี GeForce 1060 ทั้งทีก็อย่าให้เสียของ เน้นท่ายาก (ขึ้นมาอีกหน่อย) เอาแบบรองรับ GPU ด้วยเลยครับ (GPU จะต้องซัพพอร์ต CUDA 3.0 ขึ้นไป ซึ่งถ้าใช้ GPU ค่อนข้างใหม่หน่อย ไม่เก่าเกิน 3-4 ปีก็น่าจะใช้ได้หมด เช็คชื่อรุ่นได้จาก CUDA GPUs)

กระบวนการติดตั้ง TensorFlow บนวินโดวส์ เราต้องดาวน์โหลดซอฟต์แวร์มาลงหลายตัว ดังนี้

  • NVIDIA CUDA Toolkit เปรียบเสมือน SDK สำหรับใช้ NVIDIA GPU มาประมวลผลงานอื่นที่ไม่ใช่กราฟิก
  • NVIDIA cuDNN มันคือส่วนเสริมของ CUDA ที่เอาไว้รันงาน deep learning
  • Python for Windows เพราะ TensorFlow เป็นไลบรารีของ Python
  • ตัวของ TensorFlow เอง ลงผ่านแพกเกจของ Python

NVIDIA CUDA Toolkit

อันนี้ลงง่ายที่สุด ไม่ต้องทำอะไรมาก เข้าหน้า ดาวน์โหลด CUDA แล้วเลือกระบบปฏิบัติการเป็น Windows, เลือกเวอร์ชันที่ใช้งาน, วิธีติดตั้งว่าเป็นแบบดาวน์โหลดเฉพาะ installer หรือดาวน์โหลดทั้งก้อน (ถ้าต่อเน็ตตลอดเวลา เลือกอันไหนก็ได้) แล้วติดตั้งแบบไฟล์ .exe ปกติก็เรียบร้อยแล้ว

ตอนนี้เวอร์ชันล่าสุดของ CUDA คือ 8.0 ซึ่งเราใช้ตัวนี้ รายละเอียดอื่นๆ อ่านที่ CUDA Installation Guide for Microsoft Windows

NVIDIA cuDNN

NVIDIA CUDA Deep Neural Network library (cuDNN) เป็นซอฟต์แวร์เสริมของ CUDA สำหรับงาน deep learning ตัวนี้จะยุ่งยากหน่อยตรงที่ เราต้องลงทะเบียนเป็นสมาชิก NVIDIA Developer ด้วย (ซึ่งก็ไม่ได้ยากอะไร แค่กรอกฟอร์มนิดหน่อยก็ใช้ได้เลย)

เมื่อลงทะเบียนและล็อกอินแล้ว เราจะสามารถเห็นลิงก์ดาวน์โหลด cuDNN ได้ สิ่งที่ต้องระวังคือตอนนี้ (ก.ค. 2017) มี cuDNN เวอร์ชัน 6.0 แล้ว แต่ TensorFlow ยังต้องใช้เวอร์ชัน 5.1 อย่าดาวน์โหลดผิดอัน ต้องเลือกเป็น cuDNN v5.1 (Jan 20, 2017), for CUDA 8.0 เท่านั้น

ดาวน์โหลดมาแล้วเราจะได้ไฟล์ .tgz มาหนึ่งไฟล์ แตกไฟล์ออกมาจะได้โฟลเดอร์ cuda มา เอาไปไว้ตรงไหนก็ได้ตามต้องการ (เช่น ~/Documents/cuda)

ขั้นถัดไปคือเราต้องเซ็ตค่า environment variables ของระบบให้มองเห็นโฟลเดอร์ที่เก็บไฟล์ cuDNN ด้วย ให้พิมพ์คำว่า environment ในปุ่ม Start แล้วจะเจอหน้าต่าง System Properties ในแท็บ Advanced แล้วกดปุ่ม Environment Variables

เลือกตัวแปร Path ในช่องของ User variables แล้วกดปุ่ม Edit จากนั้นกดปุ่ม New เพิ่มพาธของโฟลเดอร์ cuda อันเมื่อกี้ลงไป

ผมลองใส่พาธ cuda ตรงๆ พบว่าไม่เวิร์ค ต้องใส่เป็น \cuda\bin ด้วยจึงจะสามารถเรียก cuDNN ได้ตอนรัน (เช่น C:\Users\markp\Documents\cuda\bin)

ถ้ารูปเล็กไปก็ view ขนาดเต็มเอาเองนะครับ

Python for Windows

อันนี้ก็ต้องระวังว่า ตอนนี้ TensorFlow รองรับเฉพาะ Python 3.5 เท่านั้น (เวอร์ชันล่าสุดคือ 3.5.2) แม้ว่าตอนนี้มี Python 3.6.x ออกมาแล้ว ก็ไม่รับนะจ๊ะ

ดาวน์โหลด Python 3.5.2 จาก Python.org ผมเลือกเป็นตัวติดตั้งแบบ Windows x86-64 executable installer

อันนี้มไม่มีอะไรยาก ติดตั้งแบบ exe ปกติได้เลย

TensorFlow

ในที่สุดก็มาถึงการติดตั้งตัว TensorFlow กันสักที กระบวนการติดตั้ง TensorFlow จะใช้ผ่านตัวจัดการแพ็กเกจ pip ที่มาพร้อมกับ Python อยู่แล้ว ถ้าใครคุ้นเคยกับ package manager ก็ไม่มีอะไรยาก

เปิด Command Prompt / terminal ขึ้นมา (ใครชอบ PowerShell ก็ใช้ได้เหมือนกัน) แล้วสั่ง

pip3 install --upgrade tensorflow-gpu

เราจะเห็นการดาวน์โหลดแพ็กเกจต่างๆ สักระยะ ใช้เวลาไม่นานก็ติดตั้งเสร็จเรียบร้อย

ตรวจสอบการติดตั้ง TensorFlow

เมื่อติดตั้งทุกอย่างเรียบร้อยแล้ว เช็คว่า TensorFlow ของเราทำงานได้ถูกต้อง โดยทดลองเรียกมันจาก Python นั่นแหละ

เปิด Command Prompt แล้วพิมพ์คำสั่งว่า python

มันจะเข้าพรอมพต์ของ Python แทนระบบ (สังเกตวงเล็บ >>>) แล้วให้เราพิมพ์โค้ดทดสอบลงไปทีละบรรทัด

  • import tensorflow as tf
  • hello = tf.constant('Hello, TensorFlow!')
  • sess = tf.Session()
  • print(sess.run(hello))

ถ้าไม่มีอะไรผิดพลาด พอเราพิมพ์บรรทัดที่สามแล้ว จะได้อะไรมายาวเหยียด และพิมพ์บรรทัดที่สี่ จะเห็นคำว่า 'Hello, TensorFlow!' ตอบเรากลับมา

ในภาพเบลอข้อความส่วนไม่สำคัญออก ให้เห็นโค้ดกันง่ายๆ

ทั้งหมดนี้ก็ถือว่าเสร็จเรียบร้อย ติดตั้ง TensorFlow แบบเรียกใช้ GPU บน Windows เสร็จสมบูรณ์แล้ว สามารถเริ่มพัฒนา TensorFlow ต่อได้ทันที

บล็อกนี้อ้างอิงข้อมูลจาก Installing TensorFlow on Windows เขียนเมื่อกรกฎาคม 2017 สำหรับเวอร์ชันที่ใหม่กว่านี้ในอนาคต ควรเช็คกับเอกสารอย่างเป็นทางการของ TensorFlow อีกครั้ง ว่าต้องใช้ซอฟต์แวร์เวอร์ชันไหนบ้าง