การติดตั้ง TensorFlow บน Raspberry Pi 3 Model B +

โพสต์นี้มีเนื้อหาที่ไม่ทันสมัย ปัจจุบันได้มีการออก Tensorflow official version  สำหรับ Raspbian แล้ว รายละเอียด https://medium.com/tensorflow/tensorflow-1-9-officially-supports-the-raspberry-pi-b91669b0aa0?linkId=55070050
TensorFlow เป็น Open Source Machine  Learning Framework [1] จาก Google มีให้ใช้งานกันในหลาย platform แต่ยังไม่มีบน Raspberry Pi หากจะติดตั้งก็ต้องอาศัยจากเส้นทางที่มีคนทำไว้ให้

ผมทำตามขั้นตอนที่ระบุไว้ใน https://github.com/samjabrahams/tensorflow-on-raspberry-pi เขาได้บอกทางเลือกไว้สามทาง ผมเลือกการใช้ pre-compiled ครับ เพราะสะดวกที่สุด แต่ก็แลกกับการไม่ได้ใช้รุ่นล่าสุด แต่ก็เพียงพอสำหรับการเริ่มต้นเรียนรู้แล้ว (ล่าสุดเวลาที่เขียนนี้ เป็นรุ่น 1.8 )

1. ทำ virtualenv
เป็นทางเลือกที่ส่วนตัวนิยมทำ ไม่ใช่สิ่งที่ต้องทำ ท่านอาจข้ามขั้นตอนนี้ไปเลยก็ได้

$ mkdir deeplearning
$ virtualenv --python=python2.7 deeplearning


เหตุผลที่เลือกใช้ python2.7 ก็เพื่อเลี่ยงปัญหา version incompatible ของ Python ครับ ถ้าไปดูข้อมูลใน Github จะพบว่า pre-compiled ถูกเขียนด้วย python 2.7 และ python 3.3 ซึ่งบน Raspbain มี python2.7 และ python3.5 ดังนั้นจึงต้องใช้ python2.7 สำหรับเรียนรู้การใช้ TensorFlow  ครับ


2.  ทำการติดตั้ง

$ cd deeplearning
$ source bin/activate


Numpy [4] เป็น module ที่จำเป็นสำหรับการทำงานของ TensorFlow มาก การติดตั้งจะใช้เวลานาน แต่โชคดีที่ Numpy ได้รับการติดตั้งมาบน Raspbian อยู่แล้ว เราจึงใช้การทำ symbolic link มาไว้ใน virtualenv ของเราเท่านั้น

(deeplearning)$cd local/lib/python2.7/site-packages
(deeplearning)$ln -s /usr/lib/python2.7/dist-packages/numpy .
(deeplearning)$ln -s /usr/lib/python2.7/dist-packages/numpy-1.12.1.egg-info .


แล้วก็ทำการติดตั้ง pre-compiled ของ TensorFlow

(deeplearning)$ wget https://github.com/samjabrahams/tensorflow-on-raspberry-pi/releases/download/v1.1.0/tensorflow-1.1.0-cp27-none-linux_armv7l.whl
(deeplearning)$ pip install tensorflow-1.1.0-cp27-none-linux_armv7l.whl


สังเกตุว่าเมื่ออยู่ใน virtualenv แล้ว ไม่จำเป็นต้องใช้ sudo นำหน้าคำสั่ง pip (เหมือนในเอกสาร) เพราะ default user คือคนที่สร้าง virtualenv ขึ้นมาซึ่งก็คือตัวเรา และเหตุผลของการสร้าง virtualenv ก็เพื่อไม่ให้ข้อมูลไปปะปนกับ user อื่น และเนื่องจากต้องทำงานตัวเลขจำนวนมาก จึงต้องติดตั้ง module ที่ช่วยเรื่องการจัดการตัวเลขด้วย [2]

(deeplearning)$sudo apt-get install libhdf5-serial-dev
(deeplearning)$pip install h5py


3. ทดสอบ

(deeplearning)$ python
(deeplearning)>>> import tensorflow as tf
(deeplearning)>>> print(tf.__version__)
(deeplearning)>>> 1.1.0

ต่อไปคือการติดตั้ง python module อื่นที่อาจจะได้ใช้ประโยชน์ซึ่งถือเป็นทางเลือก ส่วนของผมได้ทำการติดตั้งเพิ่มดังนี้
1. skimage
2. sklearn
3. matplotlib
4. scipy
5. keras


4. เริ่มเรียนรู้ [3] 





เอกสารอ้างอิง
[1] https://www.tensorflow.org/
[2] https://www.h5py.org/
[3] https://somchaisom.blogspot.com/2018/05/tensorflow-table-of-content.html
[4] http://www.numpy.org/
Previous
Next Post »