Pytorch ได้รับความนิยมในการใช้งาน deep learning

26 มี.ค.

Pytorch ได้รับความนิยมในการใช้งาน deep learning

PyTorch เวลานี้ได้รับความนิยมมาก โดยเฉพาะอย่างยิ่งมีการปล่อยเวอร์ชัน 1.3 และ 1.4 ออกมาแล้ว ซึ่งสนับสนุนการทำงานในระดับโมบายล์ แต่ว่าทำให้เราถึงเลือก framework เป็น pytorch มากกว่า library ชนิดอื่นๆ MXNet, Chainer, or TensorFlow เรามาดูเหตุผลที่ควรเลือก pytorch กันดีกว่า

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

PyTorch จริงแล้วก็คือ python

นี่เป็นเหตุผลหลักประการหนึ่งที่คนเลือก pytorch ที่การเขียนโค้ดนี้มีความเข้าใจง่าย framework นี้สนับสนุนการทำงานของ python  ซึ่งโมเดลนี้เป็นรูปแบบเบสิคของ python อย่างเช่นการ การเพิ่มประสิทธิภาพ,การโหลดข้อมูล,การใช้งานฟังก์ขันที่น้อยลง,การเปลี่ยนรูป และอื่นๆ 

ซึ่งภายใต้การประมวลแล้วมีการใช้งาน PyTorch นั่นเอง ที่เป็นเหมือนการปรับปรุง tensorflow เวอร์ชันใหม่ขึ้นมา คือเวอร์ชัน 2.0  นี้จึงเป็นเหตุผลที่เราควรศึกษา PyTorch ไว้ด้วย เราสามารถ debug โปรแกรมได้จาก tensorboard หรือ ใช้เทคนิคของ python โดยทั่วไป ที่มีการสร้าง กราฟจาก stack ตัวอ่าง ทำให้มันดูเป็นมิตรต่อการเรียนรู้ deep learning  จาก framework อื่นๆ ของ data science เช่น pandas หรือ Scikit-learn.

PyTorch ยังรวมสถานะของ API แบบสตาติก ที่เป็นเหตุผลหลักในการปล่อยเวอร์ชัน 1.3 ขึ้นมา ซึ่งเป็นการเปลี่ยนแปลงของตัวแปรใน tensors ขณะที่การเขียนโค้ดด้วย PyTorch เราจะต้องรู้หรือเข้าใจว่ามันมีการใช้งานอย่างไร

ความเร็วในการประมวลผลไม่สำคัญเท่ากับความเร็วในเชิงธุรกิจ

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

หากว่าเราสนใจเรื่องของความเร็วเป็นหลัก มันก็เป็นเรื่องง่ายในการจัดการ เพราะว่า server สามารถรันโปรแกรมด้วยประสิทธิภาพสูงอยู่แล้ว เราสามารถใช้การประมวลผลจาก โปรเซสเซอร์แบบมัลติคอร์ ทำให้ใช้เวลาน้อยลงไปมาก ก็หมายความว่าเรื่องประสิทธิภาพและความเร็วถูกแก้ไขไปโดยปริยาย แต่ว่าก็ต้องใช้ค่าใช้จ่ายเพื่อมาจ้างแรงงานคนเก่งๆ เพิ่มขึ้น

หมายความว่าคุณสามารถประหยัดเวลาการเขียนโปรแกรม และเขียนโปรแกรมได้อย่างมีประสิทธิภาพมากขึ้น ทำให้ใช้เงินน้อยลง แต่มีการพัฒนามากขึ้น เพราะว่าโค้ดมีลักษณะเป็น prototype อยู่แล้ว ทำให้คนเขียนสามารถไปโฟกัสเรื่องอื่นๆ ต่อไป