30 มกราคม 2559

Published มกราคม 30, 2559 by with 1 comment

พัฒนา Machine learning ด้วย TensorFlow

สวัสดีผู้อ่านทุกท่านครับ เมื่อปีที่แล้ว ทางกูเกิลได้ทำการเปิดตัว TensorFlow ซึ่งเป็นไลบรารีสำหรับใช้พัฒนา Machine learning โดยเขียนด้วยภาษาไพทอน (Python) ออกมา บทความนี้ผมจะพาผู้อ่านไปแนะนำการใช้งาน TensorFlow กันครับ


โลโก้ tensorflow

TensorFlow เป็นไลบรารีสำหรับใช้พัฒนา machine learning เป็น Open source (เขียนด้วย Python) ที่พัฒนาโดยกูเกิล โดยกูเกิลได้ปล่อย TensorFlow ซึ่งเป็นไลบรารีสำหรับใช้พัฒนา machine learning ที่ใช้งานกันในกูเกิลเอง ให้กลายเป็นโปรแกรม  Open source (ใช้  Apache 2.0 สามารถนำไปใช้เพื่อการค้าได้) และมาพร้อมกับ TensorBoard ซึ่งเป็นโปรแกรมจำลองการทำงานของกระบวนการ Learning ของ TensorFlow
วิดีโอแนะนำ


วิธีการติดตั้ง

ตั้งแต่ TensorFlow 0.6 เป็นต้นไป TensorFlow รองรับทั้ง Python 2 และ Python 3

ปัจจุบันนี้ TensorFlow รองรับทั้ง Windows , Mac OS และ Linux แล้ว สามารถติดตั้งได้ด้วย pypi โดยตรงดังนี้

รันบน CPU
เปิดคอมมานด์ไลน์ขึ้นมาแล้วใช้คำสั่งตามนี้
pip install tensorflow


หากต้องการให้รันบน GPU ติดตั้งได้ด้วยคำสั่ง
pip install tensorflow-gpu


ทดสอบการใช้งาน
$ python3
...
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print(sess.run(a + b))
42
>>>

เอกสารการใช้งานที่แนะนำ

TensorFlow และ Scikit-learn


TensorFlow เป็นไลบรารีระดับต่ำที่ช่วยให้คุณสามารถสร้าง machine learning models ( และการคำนวณอื่น ๆ ) โดยใช้เซตตัวดำเนินการอย่าง่าย ๆ เช่น " เพิ่ม " , " matmul " , " concat " เป็นต้น ในขณะที่ scikit-learn เป็นไลบรารีระดับสูง โดยมี machine learning algorithms ให้ใช้งานมากมาย

หากเราต้องการใช้งาน TensorFlow ร่วมกับ scikit-learn สามารถเรียกใช้โมดูล tensorflow.contrib.learn.python.learn ได้เลย

การใช้งานเบื้องต้น

จากบทความ เริ่มต้นการทำ Machine Learning ด้วย Scikit-learn เราต้องการนำ datasets ของดอกไม้ Iris มาทำ Linear Classifier โดยใช้ TensorFlow ร่วมกับ scikit-learn ได้ดังนี้
import tensorflow.contrib.learn.python.learn as learn
from sklearn import datasets, metrics

iris = datasets.load_iris()
feature_columns = learn.infer_real_valued_columns_from_input(iris.data)
classifier = learn.LinearClassifier(n_classes=3, feature_columns=feature_columns)
classifier.fit(iris.data, iris.target, steps=200, batch_size=32)
iris_predictions = list(classifier.predict(iris.data, as_iterable=True))
score = metrics.accuracy_score(iris.target, iris_predictions)
print("Accuracy: %f" % score)

ผลลัพธ์
Accuracy: 0.886667

หากเราต้องการแบบจำลองการทำงานของกระบวนการ Learning ของ TensorFlow เราสามารถใช้งาน TensorBoard ได้ดังนี้

แล้วจะพบกับหน้า TensorBoard คลิกข้อมูลที่เราบันทึกแบบจำลองเอาไว้
หน้า TensorBoard ซึ่งเป็นโปรแกรมจำลองการทำงานของกระบวนการ Learning ของ TensorFlows

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

ปรับปรุงครั้งที่ 1 เมื่อวันที่ 22 มกราคม 2560

1 ความคิดเห็น:

  1. ขอบคุณครับ ที่ทำให้เรื่องยากๆ
    อธิบายให้เข้าใจและทำตามง่ายๆ

    ตอบลบ

แสดงความคิดเห็นได้ครับ :)