ในบล็อกนี้ เราจะพูดถึงวิธีใช้ ' 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