NC คืออะไร ?
ผู้เขียนชอบที่จะเริ่มด้วยการชวนให้มองว่า NC คือ external GPU ที่มาในรูปของ USB stick ก็เพื่อให้เห็นภาพการใช้งาน แต่ความจริงแล้ว NC ไม่ใช่ GPU ไม่สามารถนำมาใช้ในการ train ตัวแบบได้ ใช้งานได้เฉพาะการทำ inference หรือ predict เท่านั้น เรานำเอา NC ช่วยในการคำนวณ Machine Learning Model เท่านั้น หรืออาจเรียกว่า NC คือ coprocessor ก็น่าจะถูกต้องกว่า
การที่ NC คือ coprocessor นี่เอง จึงเหมาะกับการนำมาใช้ร่วมกับคอมพิวเตอร์ทรัพยากรน้อยอย่าง Raspberry Pi
เตรียม Raspberry Pi
1. ใช้ Raspberry Pi Model 3 B+
2. ติดตั้ง Raspbian Stretch ดาวน์โหลด image แนะนำให้ใช้ SD Card ขนาด 16 GB ขึ้นไป
3. เตรียม Swap File
$ sudo nano /etc/dphys-swapfile
แก้ไขตัวแปร CONF_SWAPSIZE กำหนดค่าใหม่ให้เป็น 1024
CONF_SWAPSIZE=1024
start swap file
$ sudo dphys-swapfile swapon
ติดตั้ง NCSDK
NCSDK จะช่วยให้ Raspberry Pi (หรือ host computer แบบอื่น) สามารถสื่อสารกับ NC device ได้ blog หลายแห่งแนะนำให้ติดตั้ง NCSDK version 2 แต่จากการทดสอบส่วนตัวไม่ประสบความสำเร็จ ก็เลยจะใช้ NCSDK version 1
1. ดาวน์โหลด NCSDK
ในกรณีที่ต้องการทดลองติดตั้ง version 2.X
$ git clone -b ncsdk2 http://github.com/Movidius/ncsdk
ในกรณีที่ต้องการทดลองติดตั้ง version 1.X (ผู้เขียนใช้รุ่นนี้)
$ git clone http://github.com/Movidius/ncsdk
2. ทำการติดตั้ง
$ cd ncsdk
$ sudo make install
3. ในกรณีต้องการยกเลิการการติดตั้ง
$ cd ncsdk
$ sudo make uninstall
ทดสอบการติดตั้ง
หลังการติดตั้ง NCSDK แล้วจะพบว่ามีการสร้าง /opt/movidius เอาไว้จาก installer ต่อไปทดสอบการเชื่อมต่อกับ NC device
1. เสียบ NC device เข้ากับ USB port บน Raspberry Pi แนะนำให้ใช้ผ่าน USB Hub ที่มี power supply ของตัวเอง
2. ปรับปรุงค่า PYTHONPATH
$ export PYTHONPATH="${PYTHONPATH}:/opt/movidius/caffe/python"
ควรเพิ่มคำสั่งนี้ไว้ในบรรทัดสุดท้ายของ .bashrc 3. เขียน Python script ทดสอบการเชื่อมโยง
import mvnc.mvncapi as mvnc
# Look for enumerated Intel Movidius NCS device(s); quit program if none found.
devices = mvnc.EnumerateDevices()
if len(devices) == 0:
print('No devices found')
quit()
# Get a handle to the first enumerated device and open it
device = mvnc.Device(devices[0])
try:
device.OpenDevice()
print("Hello NC device")
except :
print("Cannot connect to NC device.")
quit()
try:
device.CloseDevice()
print("Good bye !")
except :
print("Can not closeNC device.")
quit()
ถ้า Script นี้สามารถทำงานได้ แสดงว่าการติดตั้งเป็นไปด้วยดีแล้วติดตั้ง software อื่น
ในตอนนี้จะทำการติดตั้ง Google TensorFlow และ OpenCV เพื่อให้สามารถทดลองใช้งาน source code ตัวอย่างที่ติดมากับ NCSDK ได้
ติดตั้ง OpenCV
$ sudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-100 \
libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5 \
libatlas-base-dev \
libjasper-dev
$ sudo -H pip3 install opencv-python
OpenCV ที่ได้จะเป็นรุ่นล่าสุดที่มีอยู่บน pypi.org (ในขณะที่เขียนเรื่องนี้ได้เป็นรุ่น 4.1.1)
ติดตั้ง TensorFlow
library ที่ต้องการซ้ำกันระหว่าง OpenCV และ TensorFlow คือ libatlas-base-dev ดังนั้นถ้าหากยังไม่ได้ติดตั้งหรือต้องการติดตั้ง TensorFlow ก่อน OpenCV ก็ต้องทำการติดตั้ง libatlas-base-dev ก่อน
$ sudo -H pip3 install tensorflow
รุ่นของ Tensorflow ที่ได้ขึ้นกับที่มีอยู่บน pypi.org
ต่อไปก็ทดสอบการทำ inference กับตัวอย่างที่ให้มาได้แล้ว ในตอนนี้เลือกที่จะใช้ inception_v1 ซึ่งเป็นตัวแบบสำหรับ image classification หนึ่ง
$ cd path_to_ncsdk/examples/tensorflow/inception_v1
$ python3 run.py
ผลที่ได้
Sign up here with your email
1 ความคิดเห็น:
Write ความคิดเห็นpg slot เว็บตรง แตกไว สล็อตน่าเล่น มีเกม สล็อต PG SLOTเว็บไซต์ตรง แจกเครดิตฟรี ให้เลือกเล่นล้นหลามมากมายแบบอย่าง เสมือนเลียนแบบแหล่งคาสิโนจากสถานที่จริงๆมาไว้บนโทรศัพท์เคลื่อนที่
ReplyConversionConversion EmoticonEmoticon