การเรียนรู้เชิงลึกด้วย TensorFlow 2.0: ทุกสิ่งที่คุณต้องรู้
เผยแพร่แล้ว: 2021-01-05TensorFlow คือเฟรมเวิร์กแมชชีนเลิร์นนิงโดย Google โดยหลักแล้วจะใช้สำหรับงานที่เกี่ยวข้องกับ Deep Learning และรวมเข้ากับ Google API อื่นๆ ได้อย่างราบรื่นเช่นกัน TensorFlow เป็นหนึ่งในไลบรารี่ที่มีการใช้งานมากที่สุดสำหรับ Deep Learning ในอุตสาหกรรมในขณะนี้ และควรค่าแก่การเรียนรู้โดยสิ้นเชิง!
ในตอนท้ายของบทช่วยสอนนี้ คุณจะมีความรู้ดังต่อไปนี้
- TensorFlow คืออะไร?
- มีอะไรใหม่ใน TF 2.0?
- TensorFlow กับ Keras
- การติดตั้ง TensorFlow
- ตัวแยกประเภทรูปภาพใน TensorFlow
สารบัญ
TensorFlow คืออะไร?
TensorFlow เริ่มต้นจากห้องสมุด Open-Source Deep Learning โดย Google และตอนนี้เป็นเฟรมเวิร์กที่สมบูรณ์สำหรับกระบวนการเรียนรู้ของเครื่องแบบ end-to-end คุณอาจสงสัยว่าเหตุใด Google จึงเลือกชื่อนี้และคำว่า “Tensor” หมายถึงอะไร
เทนเซอร์คืออะไร?
เทนเซอร์เป็นอาร์เรย์หลายมิติที่มีประสิทธิภาพซึ่งช่วยให้คุณสามารถดำเนินการที่ซับซ้อนบนอาร์เรย์หลายมิติได้ อย่างไรก็ตาม สิ่งเหล่านี้ไม่ได้เป็นเพียงอาร์เรย์ N- มิติ
เทนเซอร์ยังรวมถึงการแปลง เช่น ดอทโปรดัค การบวก การคูณเมทริกซ์ เป็นต้น
แต่ทำไมพวกเขาถึงมีความสำคัญ?
เทนเซอร์ไม่ใช่เรื่องใหม่ มีการใช้งานมาเป็นเวลานาน แต่คุณลักษณะเหล่านี้ถูกนำไปใช้ประโยชน์อย่างมากในด้าน Deep Learning ซึ่งข้อมูลมักจะมีขนาดใหญ่และมีหลายมิติ

เทนเซอร์ เช่นเดียวกับอาร์เรย์ Numpy ก็มีรูปร่างและประเภทข้อมูลเช่นกัน เทนเซอร์ทั้งหมดจะไม่เปลี่ยนรูปเหมือนตัวเลขและสตริงของ Python: คุณไม่สามารถอัปเดตเนื้อหาของเทนเซอร์ได้ แต่สร้างใหม่เท่านั้น
แต่สิ่งที่ทำให้แตกต่างจากอาร์เรย์ Numpy ทั่วไปคือความสามารถในการใช้หน่วยความจำ GPU และพลังประมวลผลซึ่งมีความสำคัญสูงสุดเมื่อข้อมูลมีมิติสูงและขนาดเป็นล้านหรือมากกว่า
Tensors ถูกใช้อย่างสูงในเฟรมเวิร์ก Deep Learning เช่น Pytorch ของ Facebook และ TensorFlow ของ Google ซึ่งตั้งชื่อตามพวกมันด้วยซ้ำ !
Google ยังได้พัฒนา AI accelerator อีกตัวหนึ่งที่เรียกว่า Tensor Processing Unit (TPU) โดยเฉพาะอย่างยิ่งสำหรับ TensorFlow ซึ่งยกระดับการเพิ่มประสิทธิภาพไปอีกระดับโดยสิ้นเชิง!
อ่าน: การทำให้เป็นมาตรฐานในการเรียนรู้อย่างลึกซึ้ง
มีอะไรใหม่ใน TF 2.0 ?
Google ได้เปิดตัว TensorFlow 1 เวอร์ชันแรกในปี 2015 โดยทีม Google Brain
การใช้ TensorFlow 1.x เพื่อสร้างโครงข่ายประสาทเทียมไม่ใช่เรื่องง่าย เนื่องจากต้องใช้โค้ดจำนวนมากในการเขียน
การประเมินแบบขี้เกียจ Vs การประเมินอย่างกระตือรือร้น
ด้วย TensorFlow 1.x เมื่อก่อนมีความจำเป็นต้องสร้างเซสชันและเรียกใช้เซสชันเหล่านั้นเพื่อสร้างผลลัพธ์ของ "กราฟ" มาทำความเข้าใจสิ่งนี้ด้วยรหัสด้านล่าง
นำเข้าเทนเซอร์โฟลว์เป็น tf a = tf.ค่าคงที่(1) |
การเรียกใช้โค้ดด้านบนไม่ได้ให้ผลลัพธ์ที่คุณต้องการ เช่น 3 เนื่องจาก TensorFlow 1.x ทำงานในเซสชัน
เซสชั่นเป็นประเภทของสภาพแวดล้อมที่มีตัวแปรทั้งหมดและการแปลงที่ต้องทำ
มีการสร้างกราฟของการแปลงซึ่งไม่ได้รับการประเมินจนกว่าจะมีการเรียกใช้ tf.session.run() โดยเฉพาะ
ดังนั้น โค้ดด้านบนจะส่งคืนสิ่งที่คุณคาดหวังหากคุณทำ:
tf.Session.run(c) |
นี่เรียกว่าการประเมินแบบขี้เกียจ ขณะที่มันขี้เกียจรอจนกว่าจะมีคำสั่งให้วิ่งโดยเฉพาะ
กระบวนการที่ยาวและซับซ้อนนี้จำเป็นต้องได้รับการแก้ไข และด้วยเหตุนี้จึงจำเป็นต้องมี TensorFlow 2.x
TF 2.x มาพร้อมกับการประเมินอย่างกระตือรือร้นโดยค่าเริ่มต้น ซึ่งทำให้ง่ายต่อการเขียนโค้ดและรันกระบวนการ
ขณะนี้ไม่มีเซสชันและการฝึกอบรมโครงข่ายประสาทเทียมซึ่งรับ 100 บรรทัดใน TF 1.x ใช้เวลาน้อยกว่า 20 รายการเมื่อใช้ TF 2.x
การดำเนินการอย่างกระตือรือร้นของ TensorFlow เป็นสภาพแวดล้อมการเขียนโปรแกรมที่จำเป็นซึ่งประเมินการดำเนินการทันที โดยไม่ต้องสร้างกราฟ: การดำเนินการจะส่งกลับค่าที่เป็นรูปธรรมแทนที่จะสร้างกราฟการคำนวณเพื่อเรียกใช้ในภายหลัง
สิ่งนี้ทำให้ง่ายต่อการเริ่มต้นกับ TensorFlow และโมเดลการดีบัก และยังช่วยลดต้นแบบอีกด้วย
TensorFlow กับ Keras
คำถามไม่ใช่ TensorFlow กับ Keras จริงๆ มันคือ TensorFlow กับ Keras Keras ได้จัดเตรียม API ระดับสูงไว้บน TensorFlow 1.x ซึ่งทำให้ใช้งานได้ง่ายมาก

ด้วย TF 2.0 TensorFlow ได้ทำให้ Keras เป็นส่วนหนึ่งของ API อย่างเป็นทางการสำหรับการออกแบบโมเดลและการฝึกอบรมด้วย tf.keras
แนะนำให้ใช้โค้ดทั้งหมดที่เคยทำใน Keras ด้วย tf.keras ใน TF 2.0 เนื่องจากอนุญาตให้ใช้ส่วนประกอบและระบบนิเวศ TensorFlow ทั้งหมด เช่น:
- TensorFlow Serving ซึ่งใช้ในการให้บริการ/ปรับใช้โมเดล TensorFlow ได้อย่างราบรื่น
- TensorFlow Lite ซึ่งเป็นเวอร์ชันมือถือของ TensorFlow ที่สามารถทำงานได้บน Android และ IOS
- TensorFlow.js คือชุดของ API ที่ช่วยให้เราสร้างและฝึกโมเดลโดยใช้ไลบรารีพีชคณิตเชิงเส้น JavaScript ระดับต่ำหรือ API เลเยอร์ระดับสูง ดังนั้นโมเดลการเรียนรู้เชิงลึกจึงสามารถฝึกและเรียกใช้ในเบราว์เซอร์ได้
- TensorBoard คือชุดเครื่องมือสร้างภาพเพื่อทำความเข้าใจ ดีบัก และเพิ่มประสิทธิภาพโปรแกรม TensorFlow
การติดตั้ง TensorFlow
หากคุณเพิ่งเริ่มใช้แมชชีนเลิร์นนิง วิธีที่ง่ายที่สุดในการเริ่มต้นก็คือการเปิด Colab Notebook เพียงไปที่ https://colab.research.google.com/ และคลิกที่ “New Python 3 Notebook”
ตรวจสอบให้แน่ใจว่าเคอร์เนลระบุว่า "เชื่อมต่อแล้ว" ที่ด้านบนขวา ข่าวดี TensorFlow ติดตั้งมาล่วงหน้าใน Google Colab
โว้ว! คุณทุกชุด.
หากต้องการตรวจสอบว่าคุณใช้เวอร์ชันที่ถูกต้องหรือไม่ ให้เรียกใช้ข้อมูลโค้ดด้านล่าง
นำเข้าเทนเซอร์โฟลว์เป็น tf tf.__รุ่น__ |
มันควรจะเป็นเวอร์ชั่นใด ๆ ที่สูงกว่า 2.0.0 และคุณก็พร้อมแล้ว
ตัวแยกประเภทรูปภาพใน TensorFlow
ตอนนี้ มาดู "สวัสดีชาวโลก" ของปัญหาการเรียนรู้เชิงลึก – ชุดข้อมูล MNIST
เราจะสร้างโครงข่ายประสาทเทียมสั้นๆ เพื่อทำนายชุดข้อมูล MNIST เราจะทำตามขั้นตอนด้านล่าง
- สร้างโครงข่ายประสาทเทียมที่จำแนกภาพ
- ฝึกโครงข่ายประสาทเทียม
- ประเมินความถูกต้องของแบบจำลอง
การนำเข้า TensorFlow
นำเข้าเทนเซอร์โฟลว์เป็น tf |
กำลังโหลดข้อมูล MNIST
mnist = tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) = mnist.load_data() |
การสร้างโมเดล tf.keras.Sequential โดยการซ้อนเลเยอร์
เราจำเป็นต้องเลือกเครื่องมือเพิ่มประสิทธิภาพและฟังก์ชันการสูญเสียเพื่อให้โมเดลฝึกฝน
model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense (128, การเปิดใช้งาน = 'relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.หนาแน่น(10) ]) |
การกำหนดฟังก์ชันการสูญเสียเอนโทรปีข้ามหมวดหมู่แบบเบาบาง
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy (from_logits=True) |
กำลังรวบรวมโมเดล
model.compile(optimizer='adam', การสูญเสีย=loss_fn, metrics=['ความถูกต้อง']) |
การฝึกโมเดลด้วย 5 ยุค
model.fit(x_train, y_train, ยุค=5) |
การประเมินแบบจำลอง
model.evaluate(x_test, y_test, verbose=2) |
313/313 – 0 วินาที – ขาดทุน: 0.0825 – ความแม่นยำ: 0.9753 [0.082541823387146, 0.9753000140190125] |
ตัวแยกประเภทรูปภาพได้รับการฝึกฝนให้มีความแม่นยำประมาณ 98% ในชุดข้อมูลนี้
ก่อนที่คุณจะไป
TensorFlow 2 มุ่งเน้นไปที่ความเรียบง่ายและใช้งานง่าย โดยมีการอัปเดต เช่น การดำเนินการที่กระตือรือร้น, API ระดับสูงที่ใช้งานง่าย และการสร้างแบบจำลองที่ยืดหยุ่นบนทุกแพลตฟอร์ม

TensorFlow เป็นห้องสมุด/เครื่องมือที่ใช้งานได้จริงสำหรับงานการเรียนรู้เชิงลึกทุกวันนี้ ห้องสมุดที่นิยมใช้กันมากที่สุดคือ PyTorch ของ Facebook
ระบบนิเวศที่ขยายออกไปของ TensorFlow ทำให้เป็นที่ที่ดีในการเริ่มต้นเส้นทางการเรียนรู้เชิงลึกของคุณ เข้าใจง่ายและที่สำคัญกว่านั้นคือง่ายต่อการนำไปใช้
จุดเริ่มต้นที่ดีที่สุดคือ Sequential API ที่ใช้งานง่าย คุณสามารถสร้างแบบจำลองได้โดยการต่อหน่วยการสร้างเข้าด้วยกัน เรียนรู้เพิ่มเติมเกี่ยวกับเทคนิคการเรียนรู้เชิงลึก
บทสรุป
ดังนั้น เมื่อคุณมีแนวคิดโดยละเอียดเกี่ยวกับเฟรมเวิร์กการเรียนรู้เชิงลึกที่สำคัญทั้งหมดแล้ว คุณสามารถตัดสินใจอย่างมีข้อมูลและเลือกกรอบที่เหมาะสมกับโครงการของคุณที่สุด
หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมเกี่ยวกับการเรียนรู้เชิงลึกและปัญญาประดิษฐ์ ให้ตรวจสอบโปรแกรม PG Diploma in Machine Learning และ AI ซึ่งออกแบบมาสำหรับคนทำงานมืออาชีพ และจัดเตรียมกรณีศึกษาและการมอบหมายงานมากกว่า 30 รายการ เซสชันการให้คำปรึกษาในอุตสาหกรรมมากกว่า 25 รายการ มือปฏิบัติมากกว่า 5 รายการ - ในโครงการหลัก มากกว่า 450 ชั่วโมงของการฝึกอบรมอย่างเข้มงวดและความช่วยเหลือในการจัดหางานกับบริษัทชั้นนำ