φυβλαςのβλογ
phyblas的博客



pytorch เบื้องต้นบทที่ ๑: บทนำ
เขียนเมื่อ 2018/09/08 09:17
แก้ไขล่าสุด 2022/07/09 18:15


pytorch เป็นเฟรมเวิร์กสำหรับสร้างโครงข่ายประสาทเทียม (人工神经网络, artificial neural network) ซึ่งเป็นที่นิยมใช้ เขียนด้วยภาษาไพธอน

ที่จริงแล้ว pytorch ยังสามารถใช้ในงานอื่นๆได้ด้วย แต่คนส่วนใหญ่ใช้เพื่อสร้างโครงข่ายประสาทเทียม ดังนั้นในที่นี้ก็จะแนะนำโดยมีเป้าหมายนี้เป็นหลัก

บทความชุดนี้สำหรับคนที่มีพื้นฐานโครงข่ายประสาทเทียมมาแล้วและต้องการจะใช้ pytorch ในการสร้าง ดังนั้นจึงไม่ใช่เนื้อหาที่สอนเรื่องโครงข่ายประสาทเทียมโดยตรง

หากต้องการรู้พื้นฐานโครงข่ายประสาทเทียมและการเรียนรู้เชิงลึก ทั้งหมดได้เขียนไว้ใน https://phyblas.hinaboshi.com/saraban/khrong_khai_prasat_thiam



ทำความรู้จักกับ pytorch

pytorch ถูกพัฒนาขึ้นโดย facebook โดยดัดแปลงมาจากไลบรารีชื่อ torch ซึ่งถูกใช้ในภาษา Lua มาก่อน เริ่มปล่อยให้ใช้งานตั้งแต่ปี 2016

ลักษณะ pytorch จะมีการใช้เทนเซอร์ที่คล้ายกับอาเรย์ของ numpy เป็นตัวคำนวณหลัก และสร้างโครงข่ายประสาทเทียมด้วยการนิยามขณะวิ่ง (define by run) คือวิธีการดังที่กล่าวไปในเนื้อหาโครงข่ายประสาทเทียมเบื้องต้น บทที่ ๑๑

โดยทั่วไปโครงข่ายจะถูกสร้างขึ้นจากการนำชั้นต่างๆมาประกอบกัน ชั้นต่างๆที่จำเป็นโดยทั่วไปถูกเตรียมไว้ภายในมอดูลอย่างครบถ้วนแล้ว

เทียบกับ tensorflow แล้ว pytorch มีลักษณะที่ค่อนข้างสำเร็จรูป ใช้งานง่ายกว่ามาก จึงเหมาะสำหรับผู้ที่ฝึกหัดใหม่มากกว่า แต่ก็จะไม่ได้สำเร็จรูปเท่า keras ยังปรับแต่งอะไรได้อิสระกว่า

เทนเซอร์ภายใน pytorch มีคำสั่งและการใช้งานคล้ายกับ numpy มาก ทำให้คนที่ชินกับ numpy อยู่แล้วสามารถใช้ pytorch ได้โดยไม่ต้องเรียนรู้คำสั่งใหม่มาก



การติดตั้ง

วิธีการติดตั้งจะแตกต่างกันไปโดยขึ้นอยู่กับเวอร์ชันของไพธอนที่ใช้และระบบปฏิบัติการที่ใช้ แล้วก็ขึ้นกับว่าจะใช้ GPU ด้วยหรือเปล่าด้วย

เข้าไปที่เว็บหลักของ pytorch จะมีบอกวิธีต่างๆ จะใช้ pip หรือ conda หรือลงจากซอร์สก็ได้ https://pytorch.org

pytorch ไม่ได้มีมอดูลเดียว แต่แบ่งออกเป็น ๒ มอดูลแยกกัน คือ torch และ torchvision

คำสั่งหลักๆส่วนใหญ่จะอยู่ที่ torch แต่พวกคำสั่งเสริมเช่นโหลดข้อมูลเพิ่มเติมที่ถูกเตรียมไว้ใช้ทดสอบเช่นข้อมูล MNIST, CIFAR, ฯลฯ หรือคำสั่งในการแปลงข้อมูลรูปภาพ รวมทั้งแบบจำลองที่นิยมใช้ในการเรียนรู้แบบเปลี่ยนถ่ายก็จะอยู่ใน torchvision

หากเครื่องใครใช้ GPU ไม่ได้ก็ให้ลงแบบไม่ใช้ GPU ไป ก็จะใช้งานคำสั่งที่ใช้ CPU ตามปกติได้ แต่จะใช้ GPU ไม่ได้

เมื่อใช้ GPU การเขียนโค้ดจะมีความแตกต่างกันไปจากเวลาใช้ CPU ธรรมดาเล็กน้อย ต้องปรับวิธีการเขียน แต่ไม่ได้ยากเกินไป

ในที่นี้จะเริ่มแนะนำจากแบบใช้ CPU ธรรมดาก่อน ไปบทหลังๆจึงค่อยแนะนำวิธีการใช้ GPU



สรุปความสามารถโดยรวมของ pytorch

- เตรียมออบเจ็กต์ชนิด Tensor ซึ่งสามารถคำนวณได้แบบอาเรย์ของ numpy แต่เพิ่มความสามารถในการคำนวณอนุพันธ์เข้ามา
- เตรียมชั้นต่างๆสำหรับใช้ประกอบเป็นโครงข่ายไว้พร้อม แค่นำมาต่อๆกันก็สร้างโครงข่ายประสาทเทียมแบบต่างๆได้อย่างง่าย
- มีฟังก์ชันสำหรับจัดการข้อมูลเบื้องต้นก่อนนำมาใช้เป็นข้อมูลป้อนเข้า
- มีฟังก์ชันสำหรับแปลงและตัดแต่งรูปภาพเพื่อเพิ่มความหลากหลายให้ข้อมูลรูปภาพ
- มีฟังก์ชันช่วยดึงชุดข้อมูลตัวอย่าง เช่น MNIST, CIFAR, ฯลฯ
- สามารถใช้ GPU ในการคำนวณได้



>> อ่านต่อ บทที่ ๒


-----------------------------------------

囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧

ดูสถิติของหน้านี้

หมวดหมู่

-- คอมพิวเตอร์ >> ปัญญาประดิษฐ์ >> โครงข่ายประสาทเทียม
-- คอมพิวเตอร์ >> เขียนโปรแกรม >> python >> pytorch

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

目录

从日本来的名言
模块
-- numpy
-- matplotlib

-- pandas
-- manim
-- opencv
-- pyqt
-- pytorch
机器学习
-- 神经网络
javascript
蒙古语
语言学
maya
概率论
与日本相关的日记
与中国相关的日记
-- 与北京相关的日记
-- 与香港相关的日记
-- 与澳门相关的日记
与台湾相关的日记
与北欧相关的日记
与其他国家相关的日记
qiita
其他日志

按类别分日志



ติดตามอัปเดตของบล็อกได้ที่แฟนเพจ

  查看日志

  推荐日志

ตัวอักษรกรีกและเปรียบเทียบการใช้งานในภาษากรีกโบราณและกรีกสมัยใหม่
ที่มาของอักษรไทยและความเกี่ยวพันกับอักษรอื่นๆในตระกูลอักษรพราหมี
การสร้างแบบจำลองสามมิติเป็นไฟล์ .obj วิธีการอย่างง่ายที่ไม่ว่าใครก็ลองทำได้ทันที
รวมรายชื่อนักร้องเพลงกวางตุ้ง
ภาษาจีนแบ่งเป็นสำเนียงอะไรบ้าง มีความแตกต่างกันมากแค่ไหน
ทำความเข้าใจระบอบประชาธิปไตยจากประวัติศาสตร์ความเป็นมา
เรียนรู้วิธีการใช้ regular expression (regex)
การใช้ unix shell เบื้องต้น ใน linux และ mac
g ในภาษาญี่ปุ่นออกเสียง "ก" หรือ "ง" กันแน่
ทำความรู้จักกับปัญญาประดิษฐ์และการเรียนรู้ของเครื่อง
ค้นพบระบบดาวเคราะห์ ๘ ดวง เบื้องหลังความสำเร็จคือปัญญาประดิษฐ์ (AI)
หอดูดาวโบราณปักกิ่ง ตอนที่ ๑: แท่นสังเกตการณ์และสวนดอกไม้
พิพิธภัณฑ์สถาปัตยกรรมโบราณปักกิ่ง
เที่ยวเมืองตานตง ล่องเรือในน่านน้ำเกาหลีเหนือ
ตระเวนเที่ยวตามรอยฉากของอนิเมะในญี่ปุ่น
เที่ยวชมหอดูดาวที่ฐานสังเกตการณ์ซิงหลง
ทำไมจึงไม่ควรเขียนวรรณยุกต์เวลาทับศัพท์ภาษาต่างประเทศ