0Pricing
Deep Learning Academy · บทเรียน

กฎการกระจายมิติที่ช่วยลดการวนซ้ำ

รวมเทนเซอร์ที่มีรูปร่างต่างกันแบบสมาชิกต่อสมาชิก

กฎการกระจายมิติที่ช่วยลดการวนซ้ำ เป็นบทเรียน Deep Learning Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Deep Learning Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Deep Learning Academy มีบทเรียนทั้งหมด 4 บทเรียน

รวมข้อมูลโดยไม่ต้องมี Shape ตรงกัน

Broadcasting ช่วยให้ PyTorch ขยายเทนเซอร์ขนาดเล็กให้พอดีกับเทนเซอร์ขนาดใหญ่ จึงไม่ต้องเขียนลูปเพื่อทำซ้ำค่า

บวก Scalar กับทุกค่า

การกระจายค่าที่ง่ายที่สุดคือการบวกตัวเลขหนึ่งค่ากับเทนเซอร์ทั้งหมด PyTorch จะนำไปใช้กับทุก element พร้อมกัน ✨

x = torch.tensor([1, 2, 3])
print(x + 10)  # tensor([11, 12, 13])

เปรียบเทียบ Shape จากขวาไปซ้าย

Broadcasting จะจัดแนวมิติจากด้าน ขวา จากนั้นตรวจสอบแต่ละคู่เพื่อดูว่าสามารถรวมกันได้หรือไม่

กฎข้อหนึ่ง: ขนาดเท่ากันจึงเข้าคู่กัน

สองมิติจะเข้ากันได้เมื่อมีขนาด เท่ากัน ขนาดที่ตรงกันจะวางคู่กันแบบหนึ่งต่อหนึ่งโดยไม่ต้องขยาย

กฎข้อสอง: ขนาด 1 จะถูกขยาย

หากมิติหนึ่งมีค่าเป็น 1 มิตินั้นจะขยายให้ตรงกับอีกมิติ ค่าหนึ่งเดียวนั้นจะถูกใช้ซ้ำตลอดแกน

a = torch.tensor([[1], [2], [3]])
b = torch.tensor([10, 20])
print((a + b).shape)  # torch.Size([3, 2])

มิติที่หายไปให้ถือเป็น 1

เมื่อเทนเซอร์หนึ่งมีจำนวนนิติน้อยกว่า PyTorch จะเติม ones ไว้ด้านหน้า ด้วยวิธีนี้เวกเตอร์จึงสามารถกระจายเข้ากับเมทริกซ์ได้

m = torch.ones(2, 3)
v = torch.tensor([1, 2, 3])
print((m + v).shape)  # torch.Size([2, 3])

บวก Bias ข้ามแถว

ตัวอย่างการใช้งานทั่วไปคือบวก bias หนึ่งแถวให้กับทุกตัวอย่างในแบตช์ เวกเตอร์ขนาดเล็กหนึ่งตัวจะถูกนำไปใช้กับทุกแถวโดยอัตโนมัติ

batch = torch.zeros(4, 3)
bias = torch.tensor([1.0, 2.0, 3.0])
print((batch + bias).shape)  # torch.Size([4, 3])

ปรับค่าแต่ละคอลัมน์ให้เป็นมาตรฐานพร้อมกัน

ลบค่าเฉลี่ยของแต่ละคอลัมน์ด้วย broadcasting เพื่อจัดข้อมูลให้อยู่กึ่งกลางในบรรทัดเดียว โดยไม่ต้องใช้ loop วนผ่านแถว

x = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
m = x.mean(dim=0)
print(x - m)

เมื่อ Shape ไม่สามารถ Broadcast ได้

หากสองมิติมีขนาดต่างกันและไม่มีมิติใดเป็น 1 การกระจายค่าจะ ล้มเหลว และ PyTorch จะแจ้งข้อผิดพลาดเรื่องขนาดอย่างชัดเจน

เพิ่มมิติเพื่อควบคุม Broadcasting

ใช้ unsqueeze เพื่อแทรกแกนขนาด 1 ในตำแหน่งที่ต้องการ วิธีนี้จะชี้นำ broadcasting ให้ได้ shape ตามต้องการ

col = torch.tensor([1, 2, 3]).unsqueeze(1)
print(col.shape)  # torch.Size([3, 1])

เหตุใด Broadcasting จึงรวดเร็ว

Broadcasting ไม่ได้คัดลอกค่าที่ขยาย แต่จะนำค่ากลับมาใช้ซ้ำ ทำให้การคำนวณแบบเวกเตอร์ เร็วกว่า ลูปของ Python มาก 🚀

ตรวจสอบอย่างรวดเร็ว

คุณคาดเดาได้หรือไม่ว่า Shape สองแบบจะ Broadcast กันได้หรือไม่

สรุป: กฎของ Broadcasting

คุณได้เรียนรู้สองกฎ: มิติจะเข้ากันได้เมื่อ เท่ากัน หรือเมื่อมิติหนึ่งมีค่าเป็น 1 เข้าใจกฎนี้แล้ว ลูปจะกลายเป็นการคำนวณเทนเซอร์ที่สะอาดและรวดเร็ว 💪

คำถามที่พบบ่อย

บทเรียน “กฎการกระจายมิติที่ช่วยลดการวนซ้ำ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “กฎการกระจายมิติที่ช่วยลดการวนซ้ำ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Deep Learning Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Deep Learning Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “กฎการกระจายมิติที่ช่วยลดการวนซ้ำ”

รวมเทนเซอร์ที่มีรูปร่างต่างกันแบบสมาชิกต่อสมาชิก คุณปฏิบัติ Deep Learning Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Deep Learning Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Deep Learning Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “กฎการกระจายมิติที่ช่วยลดการวนซ้ำ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Deep Learning Academy นี้ได้ไหม

ได้ บทเรียน Deep Learning Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. รูปร่าง ชนิดข้อมูล และการทำดัชนี
  2. เปลี่ยนรูปร่าง มุมมอง ลดมิติ และเพิ่มมิติ
  3. กฎการกระจายมิติที่ช่วยลดการวนซ้ำ
  4. เทนเซอร์สื่อสารกับ NumPy
← กลับไปที่ Deep Learning Academy