[เรียนรู้อย่างรวดเร็ว] รู้เบื้องต้นเกี่ยวกับ Pytorch ②: เรียนรู้พื้นฐานของ PyTorch โดยใช้การถดถอย MLP
คราวที่แล้ว เราได้รีวิววิธีจัดการกับคบไฟซึ่งเป็นพื้นฐานของ PyTorch ไปแล้ว
ครั้งนี้ฉันต้องการใช้การถดถอยแบบ Multilayer Perceptron (MLP) ใน PyTorch และตรวจสอบแพ็คเกจ PyTorch ที่สำคัญ
การไหลโดยรวม
ขั้นตอนโดยรวมของการนำแบบจำลองไปใช้มีดังนี้ () เป็นแพ็คเกจ PyTorch ที่ใช้ในขณะนั้น
- สร้างชุดข้อมูลอินพุต, วนซ้ำ (ชุดข้อมูล, ตัวโหลดข้อมูล)
- คำจำกัดความโครงข่ายประสาทเทียม (nn.Module)
- คำนวณการสูญเสีย กระจายเกรเดียนต์ไปยังพารามิเตอร์เครือข่าย (nn.Module)
- อัปเดตน้ำหนักเครือข่าย (เครื่องมือเพิ่มประสิทธิภาพ)
แพ็คเกจ PyTorch หลัก
โดยไม่คำนึงถึง PyTorch กรอบการเรียนรู้เชิงลึกจำนวนมากมีแพ็คเกจที่หลากหลายเพื่อทำให้การใช้งานง่ายขึ้น PyTorch ส่วนใหญ่มีสิ่งต่อไปนี้:
ไฟฉายเทนเซอร์ | อาร์เรย์หลายมิติ โครงสร้างข้อมูลที่ใช้โดย PyTorch |
คบเพลิง.ออโต้กราด | ใช้การส่งต่อ / การย้อนกลับรองรับการดำเนินการแยกความแตกต่างโดยอัตโนมัติบน Tensors เช่น backpropagation (backward()) |
torch.utils.data | ประกอบด้วยยูทิลิตี้เช่น "ชุดข้อมูล" ที่รวบรวมข้อมูลอินพุตและป้ายกำกับเป็นชุด และ "Dataloader" ที่แยกข้อมูลจากชุดข้อมูลเป็นชุดย่อยและส่งต่อไปยังโมเดล |
torch.nn.โมดูล | ใช้สำหรับสร้างเครือข่ายประสาทรับผิดชอบในการห่อหุ้มพารามิเตอร์ เช่น การบันทึกและโหลดโมเดล และย้ายไปยัง GPU |
ไฟฉาย.optim | เปิดใช้งานการใช้อัลกอริทึมการปรับพารามิเตอร์ให้เหมาะสม เช่น SDG และ Adam |
การนำแบบจำลองไปใช้
สร้างชุดข้อมูล
ครั้งนี้ เราจะเตรียม sin(5x) บวกกับตัวเลขสุ่มที่มี numpy เป็นข้อมูลฝึกหัดfrom_numpy()
แปลง torch.tensor ด้วย
คำจำกัดความของโมเดล
ใน pytorch โมเดลถูกกำหนดเป็น "python class" ที่สืบทอดคลาส nn.Module
คลาส MLP (nn.Module): คลาส MLP ที่กำหนดจะสืบทอดคลาสพาเรนต์ nn.Module
เริ่มต้น def (): รับข้อโต้แย้งและยกตัวอย่าง
สุดยอด (MLP, ตัวเอง). init (): สืบทอดคลาสพาเรนต์ด้วยฟังก์ชันพิเศษ
def ไปข้างหน้า (ตัวเอง, x): หลังจากสร้างอินสแตนซ์แล้ว จะทำงานเมื่อมีการเรียกใช้ฟังก์ชัน การกำหนดฟังก์ชันไปข้างหน้าจะกำหนดฟังก์ชันย้อนกลับโดยอัตโนมัติ (การคำนวณแบบไล่ระดับสี)
.parameters()
คุณสามารถรับโครงสร้างเครือข่ายและพารามิเตอร์ด้วย
คำนวณการสูญเสีย การขยายพันธุ์ย้อนหลัง อัพเดตน้ำหนัก
เพื่อทำความเข้าใจลักษณะการทำงานของแต่ละรายการ ให้นำข้อมูลส่วนหนึ่งจาก x ป้อนเข้าไปในโครงข่ายประสาทเทียม และดูว่าพารามิเตอร์เปลี่ยนแปลงอย่างไรเนื่องจากการคำนวณข้อผิดพลาดและการอัปเดตน้ำหนัก
เรียกใช้ลูปการเรียนรู้
ดำเนินการขั้นตอนข้างต้นสำหรับแต่ละชุดเพื่อฝึกโครงข่ายประสาทเทียมDataset
ส่งคืนชุดข้อมูลและป้ายกำกับที่เกี่ยวข้อง และDataLoader
เป็นคลาสที่ส่งคืนข้อมูลเป็นชุดขนาด
การแสดงกราฟการคำนวณ
โครงสร้าง MLP สามชั้นที่สร้างขึ้นในครั้งนี้สามารถมองเห็นได้โดยใช้แพ็คเกจ python ที่เรียกว่า torchvizparameters()
โปรดใช้เมื่อเพียงอย่างเดียวไม่เพียงพอ
เราได้เห็น PyTorch และแพ็คเกจหลักของ PyTorch ผ่านการใช้งาน MLP regression
ดิสโก้
รายการความคิดเห็น
ยังไม่มีความเห็น