จะรับน้ำหนักของเลเยอร์โมเดลใน PyTorch ได้อย่างไร

Ca Rab Na Hnak Khxng Leyexr Model Ni Pytorch Di Xyangri



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

ในบล็อกนี้ จะเน้นไปที่วิธีรับน้ำหนักของเลเยอร์โมเดลใน PyTorch

น้ำหนักของเลเยอร์โมเดลใน PyTorch คืออะไร

ตุ้มน้ำหนัก ' และ ' อคติ ” เป็นทั้งคุณสมบัติที่สำคัญของโมเดล Neural Network พารามิเตอร์เหล่านี้เป็นพารามิเตอร์ที่สามารถเรียนรู้ได้ซึ่งได้รับการอัปเดตเป็นประจำระหว่างลูปการฝึกอบรมพร้อมกับการส่งต่อโมเดลแต่ละครั้ง การอัปเดตเป็นประจำนี้เกิดจากการรวมเครื่องมือเพิ่มประสิทธิภาพเช่นเครื่องมือเพิ่มประสิทธิภาพ Adam วัตถุประสงค์ของแบบจำลองโครงข่ายประสาทเทียมคือการคาดการณ์ที่แม่นยำโดยอิงจากข้อมูลอินพุต รวมถึงน้ำหนักและอคติเพื่อปรับผลลัพธ์เหล่านี้เพื่อลดการสูญเสียให้เหลือน้อยที่สุด







จะรับน้ำหนักของเลเยอร์โมเดลใน PyTorch ได้อย่างไร

น้ำหนัก ” ของเลเยอร์จะถูกเก็บไว้ในพจนานุกรม Python และใช้ไวยากรณ์ “ state_dict() '. พจนานุกรมใช้ในการเรียกตุ้มน้ำหนักโดยใช้ขั้นตอนด้านล่าง:



ขั้นตอนที่ 1: เปิด Colab IDE

บทช่วยสอนนี้จะเริ่มต้นด้วยการเลือก IDE สำหรับโปรเจ็กต์ ไปที่โคลาบอราทอรี เว็บไซต์ และเริ่ม “ โน๊ตบุ๊คใหม่ ” เพื่อเริ่มทำงาน:







ขั้นตอนที่ 2: ติดตั้งและนำเข้าไลบรารี

หลังจากตั้งค่าสมุดบันทึก Colab แล้ว “ ติดตั้ง ' และ ' นำเข้า ” ไลบรารีที่ครอบคลุมฟังก์ชันที่จำเป็นทั้งหมดในโครงการ:

! pip ติดตั้งไฟฉาย

นำเข้า คบเพลิง

นำเข้า การมองเห็นคบเพลิง โมเดล

รหัสข้างต้นทำงานดังนี้:



  • ปิ๊ป ” ตัวติดตั้งแพ็คเกจจาก python ใช้เพื่อติดตั้งสิ่งที่จำเป็น “ คบเพลิง ' ห้องสมุด.
  • ต่อไป “ นำเข้า ” คำสั่งใช้เพื่อนำเข้าเข้าสู่โครงการ
  • สุดท้ายนี้ “ torchvision.รุ่น ” แพ็คเกจยังถูกนำเข้าสำหรับฟังก์ชันเพิ่มเติมของโมเดลการเรียนรู้เชิงลึก:

ขั้นตอนที่ 3: นำเข้าโมเดล ResNet

ในบทช่วยสอนนี้ “ เรสเน็ต50 ” โมเดลโครงข่ายประสาทเทียมที่มี 50 เลเยอร์ภายในไลบรารี Torchvision ถูกนำมาใช้ในการสาธิต นำเข้าโมเดลที่ได้รับการฝึกล่วงหน้าตามที่แสดง:

ตัวอย่าง_รุ่น = การมองเห็นคบเพลิง โมเดล . จริงจัง50 ( ฝึกอบรมล่วงหน้า = จริง )

ขั้นตอนที่ 4: กำหนด Model Layer

กำหนดชื่อเลเยอร์โมเดลและใช้คำสั่ง “ state_dict() ” วิธีการรับน้ำหนักดังแสดง:

ตัวอย่าง_ชั้น_ชื่อ = 'layer2.0.conv1'

ตัวอย่าง_ชั้น_น้ำหนัก = ตัวอย่าง_รุ่น state_dict ( ) [ ตัวอย่าง_ชั้น_ชื่อ + '.น้ำหนัก' ]

พิมพ์ ( 'น้ำหนักของเลเยอร์: \n ' , ตัวอย่าง_ชั้น_น้ำหนัก รูปร่าง )

รหัสข้างต้นทำงานดังนี้:

  • เลเยอร์ที่ซับซ้อนที่สองของรุ่น ResNet50 ถูกกำหนดให้กับ “ ตัวอย่าง_ชั้น_ชื่อ ' ตัวแปร.
  • จากนั้น “ state_dict() ” วิธีการใช้กับ “ ตัวอย่าง_รุ่น ” ตัวแปรและถูกกำหนดให้กับ “ ตัวอย่าง_ชั้น_น้ำหนัก ' ตัวแปร.
  • ตัวอย่าง_ชั้น_ชื่อ ' และ ' .น้ำหนัก ” ถูกเพิ่มเป็นข้อโต้แย้งของ “ state_dict() ” วิธีการเพื่อให้ได้น้ำหนัก
  • สุดท้ายนี้ ใช้เครื่องหมาย “ พิมพ์() ” วิธีการแสดง Layer Weights เป็นผลลัพธ์:

ผลลัพธ์ด้านล่างนี้แสดงให้เห็นว่าเราได้รับน้ำหนักของเลเยอร์โมเดลใน Pytorch แล้ว:

บันทึก : คุณสามารถเข้าถึง Colab Notebook ของเราได้ที่นี้ ลิงค์ .

โปรทิป

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

ความสำเร็จ! เราได้สาธิตวิธีการรับน้ำหนักของเลเยอร์ของโมเดล PyTorch แล้ว

บทสรุป

รับน้ำหนักของเลเยอร์โมเดลใน PyTorch โดยใช้ไฟล์ “state_dict() ” หลังจากนำเข้าโมเดลจาก torchvision หรือใช้แบบกำหนดเอง น้ำหนักของเลเยอร์โมเดลคือพารามิเตอร์ที่สามารถเรียนรู้ได้ซึ่งได้รับการอัปเดตอย่างต่อเนื่องระหว่างการฝึกอบรมและจัดทำรายการความคืบหน้า ในบทความนี้ เราได้แสดงวิธีการนำเข้าโมเดล ResNet50 จาก torchvision และรับน้ำหนักของเลเยอร์ที่ซับซ้อนที่สอง