จะใช้ “torch.no_grad” ใน PyTorch ได้อย่างไร

Ca Chi Torch No Grad Ni Pytorch Di Xyangri



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

ในบล็อกนี้ เราจะพูดถึงวิธีใช้ ' torch.no_grad ” วิธีการใน PyTorch

วิธี 'torch.no_grad' ใน PyTorch คืออะไร

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







วิธีใช้วิธี 'torch.no_grad' ใน PyTorch

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



ทำตามขั้นตอนด้านล่างเพื่อเรียนรู้วิธีใช้ “ torch.no_grad ” วิธีปิดการใช้งานการคำนวณการไล่ระดับสีใน PyTorch:







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

Google Colaboratory เป็นตัวเลือกแพลตฟอร์มที่ยอดเยี่ยมสำหรับการพัฒนาโปรเจ็กต์โดยใช้เฟรมเวิร์ก PyTorch เนื่องจากมี GPU เฉพาะ ไปที่โคลาบ เว็บไซต์ และเปิด “ โน๊ตบุ๊คใหม่ ' ตามที่ปรากฏ:



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

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

!pip ติดตั้งคบเพลิง
นำเข้าไฟฉาย

ขั้นตอนที่ 3: กำหนด PyTorch Tensor ด้วยการไล่ระดับสี

เพิ่ม PyTorch tensor ให้กับโปรเจ็กต์โดยใช้คำสั่ง “ คบเพลิง.เทนเซอร์() ' วิธี. จากนั้นให้ทำการไล่ระดับสีที่ถูกต้องโดยใช้เครื่องหมาย “ need_grad=จริง ” วิธีการดังแสดงในรหัสด้านล่าง:

A = torch.tensor([5.0], need_grad=True)

ขั้นตอนที่ 4: ใช้วิธี 'torch.no_grad' เพื่อลบการไล่ระดับสี

จากนั้น ให้ลบการไล่ระดับสีออกจากเทนเซอร์ที่กำหนดไว้ก่อนหน้านี้โดยใช้เครื่องหมาย “ torch.no_grad ' วิธี:

ด้วย torch.no_grad():
B = A**2 + 16

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

  • no_grad() ” วิธีการใช้ภายใน “ กับ ” วนซ้ำ
  • เทนเซอร์ทุกตัวที่อยู่ภายในลูปจะถูกลบการไล่ระดับสีออก
  • สุดท้าย กำหนดตัวอย่างการคำนวณทางคณิตศาสตร์โดยใช้เทนเซอร์ที่กำหนดไว้ก่อนหน้านี้ และกำหนดให้กับ “ บี ” ตัวแปรตามที่แสดงด้านบน:

ขั้นตอนที่ 5: ตรวจสอบการลบการไล่ระดับสี

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

print('การคำนวณการไล่ระดับสีด้วย torch.no_grad: ', A.grad)
พิมพ์ ('\ n เทนเซอร์ดั้งเดิม: ', A)
print('\nตัวอย่างการคำนวณเลขคณิต: ', B)

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

  • ผู้สำเร็จการศึกษา ” วิธีการให้ค่าความชันของเทนเซอร์แก่เรา “ '. มันไม่แสดงอะไรเลยในผลลัพธ์ด้านล่างเนื่องจากการไล่ระดับสีถูกลบออกโดยใช้เครื่องหมาย “ torch.no_grad ' วิธี.
  • เทนเซอร์ดั้งเดิมยังคงแสดงให้เห็นว่ามันมีความลาดชันเมื่อมองจาก “ need_grad=จริง ” คำสั่งในเอาต์พุต
  • สุดท้าย ตัวอย่างการคำนวณทางคณิตศาสตร์จะแสดงผลลัพธ์ของสมการที่กำหนดไว้ก่อนหน้านี้:

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

โปรทิป

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

ความสำเร็จ! เราได้แสดงให้คุณเห็นถึงวิธีการใช้เมธอด 'torch.no_grad' เพื่อปิดการใช้งานการไล่ระดับสีใน PyTorch

บทสรุป

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