TensorFlow คืออะไร? มันทำงานอย่างไร [พร้อมตัวอย่าง]

เผยแพร่แล้ว: 2021-09-22

TensorFlow เป็นไลบรารีโอเพ่นซอร์สที่ใช้สร้างโมเดลการเรียนรู้ของเครื่อง เป็นแพลตฟอร์มที่น่าทึ่งสำหรับทุกคนที่หลงใหลในการทำงานกับการเรียนรู้ของเครื่องและปัญญาประดิษฐ์ นอกจากนี้ ด้วยการเติบโตอย่างต่อเนื่องที่ตลาดแมชชีนเลิร์นนิงพบเห็น เครื่องมืออย่าง TensorFlow จึงได้รับความสนใจในขณะที่บริษัทเทคโนโลยีสำรวจความสามารถที่หลากหลายของเทคโนโลยี AI ไม่ต้องสงสัยเลยว่า ตลาดแมชชีนเลิร์นนิงทั่วโลกคาดว่าจะมีมูลค่าถึง 117.19 พันล้านดอลลาร์สหรัฐภายใน ปี 2570

แต่ในตอนแรก การรู้ ว่า TensorFlow คืออะไร และอะไรที่ทำให้เป็นตัวเลือกยอดนิยมในหมู่นักพัฒนาทั่วโลก

สารบัญ

TensorFlow คืออะไร?

TensorFlow เป็นแพลตฟอร์มโอเพ่นซอร์สแบบ end-to-end สำหรับแมชชีนเลิร์นนิงโดยเน้นเฉพาะที่เครือข่ายนิวรัลเชิงลึก การเรียนรู้เชิงลึกเป็นส่วนย่อยของการเรียนรู้ของเครื่องที่เกี่ยวข้องกับการวิเคราะห์ข้อมูลขนาดใหญ่ที่ไม่มีโครงสร้าง การเรียนรู้เชิงลึกแตกต่างจากการเรียนรู้ของเครื่องแบบเดิม โดยที่การเรียนรู้แบบหลังมักเกี่ยวข้องกับข้อมูลที่มีโครงสร้าง

TensorFlow มีคอลเลกชั่นห้องสมุด เครื่องมือ และทรัพยากรชุมชนที่ยืดหยุ่นและครอบคลุม ช่วยให้นักพัฒนาสร้างและปรับใช้แอปพลิเคชันที่ขับเคลื่อนด้วยการเรียนรู้ของเครื่องที่ล้ำสมัย หนึ่งในสิ่งที่ดีที่สุดเกี่ยวกับ TensorFlow ก็คือมันใช้ Python เพื่อจัดเตรียม front-end API ที่สะดวกสำหรับการสร้างแอปพลิเคชันในขณะที่ดำเนินการใน C++ ที่มีประสิทธิภาพสูงและปรับให้เหมาะสม

ทีม Google Brain ได้พัฒนา ห้องสมุดการเรียนรู้เชิงลึกของ TensorFlow Python เพื่อการใช้งานภายใน ตั้งแต่นั้นมา แพลตฟอร์มโอเพนซอร์ซก็มีการใช้งานเพิ่มขึ้นอย่างมากในด้าน R&D และระบบการผลิต

ข้อมูลเบื้องต้นเกี่ยวกับ TensorFlow

ตอนนี้เรามีแนวคิดพื้นฐาน แล้ว ว่า TensorFlow คืออะไร ก็ถึงเวลาเจาะลึกรายละเอียดเพิ่มเติมเกี่ยวกับแพลตฟอร์ม

ต่อไปนี้เป็นภาพรวมโดยย่อของแนวคิดพื้นฐานบางอย่างที่เกี่ยวข้องกับ TensorFlow เราจะเริ่มต้นด้วยเทนเซอร์ ซึ่งเป็นองค์ประกอบหลักของ TensorFlow ซึ่งเป็นที่มาของชื่อแพลตฟอร์ม

เทนเซอร์

ใน ไลบรารีการเรียนรู้เชิงลึกของ TensorFlow Python เทนเซอร์คืออาร์เรย์ที่แสดงประเภทของข้อมูล ไม่เหมือนกับเวกเตอร์หรืออาร์เรย์หนึ่งมิติหรือเมทริกซ์สองมิติ เทนเซอร์สามารถมีได้ n มิติ ในเทนเซอร์ ค่าจะมีประเภทข้อมูลที่เหมือนกันและมีรูปร่างที่รู้จัก รูปร่างแสดงถึงมิติ ดังนั้น เวกเตอร์จะเป็นเมตริกซ์หนึ่งมิติ เมทริกซ์คือเมตริกซ์สองมิติ และสเกลาร์จะเป็นเมตริกซ์ศูนย์

เทนเซอร์

แหล่งที่มา

รูปร่าง

ใน ไลบรารี TensorFlow Python รูปร่างหมายถึงมิติของเทนเซอร์

ในไลบรารี TensorFlow Python รูปร่างหมายถึงมิติของเทนเซอร์

แหล่งที่มา

ในภาพด้านบน รูปร่างของเทนเซอร์คือ (2,2,2)

พิมพ์

ประเภทแสดงถึงชนิดของข้อมูลที่ค่าในเทนเซอร์ถือ โดยปกติ ค่าทั้งหมดในเทนเซอร์จะมีประเภทข้อมูลที่เหมือนกัน ประเภทข้อมูลใน TensorFlow มีดังนี้:

  • จำนวนเต็ม
  • จุดลอยตัว
  • จำนวนเต็มไม่มีเครื่องหมาย
  • บูลีน
  • สตริง
  • จำนวนเต็มด้วย ops เชิงปริมาณ
  • ตัวเลขเชิงซ้อน

กราฟ

กราฟคือชุดของการคำนวณที่เกิดขึ้นอย่างต่อเนื่องบนเมตริกซ์อินพุต ประกอบด้วยการจัดเรียงโหนดที่แสดงถึงการดำเนินการทางคณิตศาสตร์ในแบบจำลอง

การประชุม

เซสชั่นใน TensorFlow รันการดำเนินการในกราฟ มันถูกเรียกใช้เพื่อประเมินโหนดในกราฟ

ผู้ประกอบการ

ตัวดำเนินการใน TensorFlow คือการดำเนินการทางคณิตศาสตร์ที่กำหนดไว้ล่วงหน้า

เทนเซอร์ทำงานอย่างไร?

ใน TensorFlow กราฟการไหลของข้อมูลจะอธิบายว่าข้อมูลเคลื่อนผ่านชุดของโหนดการประมวลผลอย่างไร TensorFlow ใช้กราฟการไหลของข้อมูลเพื่อสร้างแบบจำลอง การคำนวณกราฟใน TensorFlow นั้นอำนวยความสะดวกผ่านการเชื่อมต่อระหว่างเมตริกซ์

n-มิติเทนเซอร์ถูกป้อนเข้าสู่โครงข่ายประสาทเทียมเป็นอินพุต ซึ่งต้องผ่านการดำเนินการหลายอย่างเพื่อให้ได้ผลลัพธ์ กราฟมีเครือข่ายของโหนด โดยที่แต่ละโหนดแสดงถึงการดำเนินการทางคณิตศาสตร์ แต่ขอบระหว่างโหนดเป็นอาร์เรย์ข้อมูลหลายมิติหรือเทนเซอร์ เซสชัน TensorFlow อนุญาตให้เรียกใช้งานกราฟหรือส่วนต่างๆ ของกราฟ สำหรับสิ่งนั้น เซสชันจะจัดสรรทรัพยากรในเครื่องหนึ่งเครื่องขึ้นไป และเก็บค่าที่แท้จริงของผลลัพธ์และตัวแปรระดับกลาง

หน้าที่ของเทนเซอร์

แหล่งที่มา

แอปพลิเคชัน TensorFlow สามารถทำงานได้บนเกือบทุกเป้าหมายที่สะดวก ซึ่งอาจเป็น CPU, GPU, คลัสเตอร์ในคลาวด์, เครื่องในเครื่อง หรืออุปกรณ์ Android และ iOS

กราฟการคำนวณเทนเซอร์โฟลว์

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

ต่อไปนี้คือตัวอย่างง่ายๆ เพื่อแสดงการสร้างกราฟการคำนวณ:

สมมติว่าเราต้องการทำการคำนวณ: F(x,y,z) = (x+y)*z

ตัวแปรสามตัว x, y และ z จะแปลเป็นสามโหนดในกราฟที่แสดงด้านล่าง:

กราฟการคำนวณเทนเซอร์โฟลว์

แหล่งที่มา

ขั้นตอนการสร้างกราฟ:

ขั้นตอนที่ 1: กำหนดตัวแปร ในตัวอย่างนี้ ค่าต่างๆ ได้แก่:

x = 1, y = 2 และ z = 3

ขั้นตอนที่ 2: เพิ่ม x และ y

ขั้นตอนที่ 3: คูณ z ด้วยผลรวมของ x และ y

ในที่สุด เราก็ได้ผลลัพธ์เป็น '9'

นอกจากโหนดที่เรากำหนดตัวแปรแล้ว กราฟยังมีโหนดอีกสองโหนด – โหนดหนึ่งสำหรับการบวกและอีกโหนดสำหรับการคูณ จึงมีทั้งหมด 5 โหนด

องค์ประกอบการเขียนโปรแกรมพื้นฐานใน TensorFlow

ใน TensorFlow เราสามารถกำหนดข้อมูลให้กับองค์ประกอบข้อมูลสามประเภทที่แตกต่างกัน – ค่าคงที่ ตัวแปร และตัวยึดตำแหน่ง

มาดูกันว่าแต่ละองค์ประกอบข้อมูลเหล่านี้แสดงถึงอะไร

1. ค่าคงที่

ดังที่เห็นได้ชัดจากชื่อ ค่าคงที่คือพารามิเตอร์ที่มีค่าที่ไม่เปลี่ยนแปลง ใน TensorFlow ค่าคงที่ถูกกำหนดโดยใช้คำสั่ง tf.constant( ) ระหว่างการคำนวณ ค่าคงที่ไม่สามารถเปลี่ยนแปลงได้

นี่คือตัวอย่าง:

c = tf.constant(2.0,tf.float32)

d = tf.constant(3.0)

พิมพ์ (c,d)

2. ตัวแปร

ตัวแปรอนุญาตให้เพิ่มพารามิเตอร์ใหม่ลงในกราฟได้ คำ สั่ง tf.variable() กำหนดตัวแปรที่ต้องเริ่มต้นก่อนที่จะเรียกใช้กราฟในเซสชัน

นี่คือตัวอย่าง:

Y = tf.Variable([.4],dtype=tf.float32)

a = tf.Variable([-.4],dtype=tf.float32)

b = tf.placeholder (tf.float32)

linear_model = Y*b+a

3. ตัวยึด

เมื่อใช้ตัวยึดตำแหน่ง เราสามารถป้อนข้อมูลเข้าสู่โมเดลจากภายนอกได้ อนุญาตให้กำหนดค่าในภายหลัง คำสั่ง tf.placeholder() กำหนดตัวยึดตำแหน่ง

นี่คือตัวอย่าง:

c = tf.placeholder (tf.float32)

d = c*2

ผลลัพธ์ = sess.run(d,feed_out={c:3.0})

ตัวยึดตำแหน่งจะใช้เป็นหลักในการป้อนแบบจำลอง ข้อมูลจากภายนอกถูกป้อนเข้าสู่กราฟโดยใช้ชื่อตัวแปร (ชื่อตัวแปรในตัวอย่างข้างต้นคือ feed_out) ต่อจากนั้นในขณะที่รันเซสชั่น เราระบุวิธีที่เราต้องการฟีดข้อมูลไปยังโมเดล

ตัวอย่างเซสชัน:

การดำเนินการของกราฟทำได้โดยการเรียกเซสชัน มีการเรียกใช้เซสชันเพื่อประเมินโหนดของกราฟ ซึ่งเรียกว่ารันไทม์ TensorFlow คำสั่ง sess = tf.Session() สร้างเซสชัน

ตัวอย่าง:

x = tf.ค่าคงที่(3.0)

y = tf.ค่าคงที่(4.0)

z = x+y

sess = tf.Session() #เปิดเซสชัน

print(sess.run(z)) #การประเมินเทนเซอร์ z

ในตัวอย่างข้างต้น มีสามโหนด – x, y และ z โหนด 'z' คือตำแหน่งที่มีการดำเนินการทางคณิตศาสตร์ จากนั้นจึงได้ผลลัพธ์ เมื่อสร้างเซสชันและรันโหนด z อันดับแรก โหนด x และ y จะถูกสร้างขึ้น จากนั้น การดำเนินการเพิ่มเติมจะเกิดขึ้นที่โหนด z ดังนั้น เราจะได้ผลลัพธ์ '7'

พัฒนาอาชีพของคุณใน ML และ Deep Learning ด้วย upGrad

กำลังมองหาที่ที่ดีที่สุดเพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับ TensorFlow คือ อะไร? upGrad พร้อม ช่วยเหลือคุณตลอดเส้นทางการเรียนรู้

ด้วยฐานผู้เรียนที่ครอบคลุมกว่า 85 ประเทศ upGrad เป็นแพลตฟอร์ม EdTech ระดับอุดมศึกษาที่ใหญ่ที่สุดในเอเชียใต้ ซึ่งส่งผลกระทบต่อคนทำงานมากกว่า 500,000 คนทั่วโลก ด้วยคณาจารย์ระดับโลก ความร่วมมือกับพันธมิตรในอุตสาหกรรม เทคโนโลยีล่าสุด และแนวทางการสอนที่ทันสมัยที่สุด upGrad รับประกันประสบการณ์การเรียนรู้ที่เป็นประโยชน์และครบถ้วนสำหรับผู้เรียนที่ชำระเงินแล้วกว่า 40,000 รายทั่วโลก

โปรแกรม ประกาศนียบัตรขั้นสูงในการเรียนรู้ของเครื่องและการเรียนรู้เชิงลึก เป็นหลักสูตร 6 เดือนที่มีความเข้มงวดทางวิชาการและเกี่ยวข้องกับอุตสาหกรรม ซึ่งครอบคลุมแนวคิดของการเรียนรู้เชิงลึก

ไฮไลท์ของโปรแกรม:

  • การยอมรับอันทรงเกียรติจาก IIIT Bangalore
  • เนื้อหามากกว่า 240 ชั่วโมงพร้อมกรณีศึกษาและโครงการมากกว่า 5 รายการ เซสชันสดมากกว่า 24 รายการ และเซสชันการฝึกสอนจากผู้เชี่ยวชาญมากกว่า 15 รายการ
  • ความครอบคลุมของเครื่องมือ ภาษา และไลบรารี 12 รายการ (รวมถึง TensorFlow)
  • ความช่วยเหลือด้านอาชีพแบบ 360 องศา การให้คำปรึกษา และโอกาสในการสร้างเครือข่ายแบบตัวต่อตัว

วิทยาศาสตรมหาบัณฑิต ของ upGrad ในการเรียนรู้ของเครื่องและปัญญาประดิษฐ์ เป็นโปรแกรมที่มีประสิทธิภาพเป็นเวลา 18 เดือนสำหรับผู้ที่ต้องการเรียนรู้และเพิ่มพูนทักษะด้วยตนเองด้วยการเรียนรู้ของเครื่องขั้นสูงและเทคโนโลยีคลาวด์

ไฮไลท์ของโปรแกรม:

  • รางวัลอันทรงเกียรติจาก Liverpool John Moores University และ IIT Madras
  • เนื้อหามากกว่า 650 ชั่วโมงพร้อมกรณีศึกษาและโครงการมากกว่า 25 รายการ เซสชันสดมากกว่า 20 รายการ และงานเขียนโค้ดมากกว่า 8 รายการ
  • ความครอบคลุมของเครื่องมือ 7 และภาษาการเขียนโปรแกรม (รวมถึง TensorFlow)
  • ความช่วยเหลือด้านอาชีพแบบ 360 องศา การให้คำปรึกษา และโอกาสในการสร้างเครือข่ายแบบตัวต่อตัว

บทสรุป

การเรียนรู้ของเครื่องและปัญญาประดิษฐ์ยังคงพัฒนาอย่างต่อเนื่อง สิ่งที่ครั้งหนึ่งเคยเป็นธีมของภาพยนตร์ไซไฟได้กลายเป็นความจริงแล้ว ตั้งแต่การแนะนำภาพยนตร์ของ Netflix และผู้ช่วยเสมือนไปจนถึงรถยนต์ที่ขับด้วยตนเองและการค้นคว้ายา การเรียนรู้ของเครื่องส่งผลต่อทุกมิติของชีวิตเรา นอกจากนี้ ด้วยเครื่องมืออย่าง TensorFlow นวัตกรรมในการเรียนรู้ของเครื่องได้มาถึงจุดสูงสุด ไลบรารีโอเพ่นซอร์สไม่ต้องสงสัยเลยว่าเป็นประโยชน์สำหรับนักพัฒนาและมืออาชีพรุ่นใหม่ที่คิดค้นเทคโนโลยีที่ขับเคลื่อนด้วยการเรียนรู้ด้วยเครื่อง

ดังนั้นสิ่งที่คุณรอ? เริ่มเรียนรู้กับ upGrad วันนี้!

TensorFlow ใช้ทำอะไร?

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

TensorFlow เขียนด้วย Python หรือ C ++ หรือไม่

TensorFlow อนุญาตให้ใช้ front-end APIs โดยใช้ภาษาต่างๆ เช่น Python, R, C และ C++ อย่างไรก็ตาม รันไทม์ใน TensorFlow เขียนโดยใช้ภาษา C++

TensorFlow จำเป็นต้องมีการเข้ารหัสหรือไม่

เนื่องจาก TensorFlow เป็นไลบรารีโอเพนซอร์สสำหรับการเรียนรู้ของเครื่อง จึงมีสี่ส่วนหลักที่เราต้องเชี่ยวชาญ แม้ว่าทักษะในการเขียนโปรแกรมเป็นสิ่งจำเป็น แต่องค์ประกอบที่สำคัญอื่นๆ ของการเรียนรู้ด้วยแมชชีนเลิร์นนิงก็คือ คณิตศาสตร์และสถิติ ทฤษฎีแมชชีนเลิร์นนิง และประสบการณ์ตรงในการสร้างโปรเจ็กต์แมชชีนเลิร์นนิงตั้งแต่เริ่มต้น