กฎการกระจายมิติที่ช่วยลดการวนซ้ำ
รวมเทนเซอร์ที่มีรูปร่างต่างกันแบบสมาชิกต่อสมาชิก
กฎการกระจายมิติที่ช่วยลดการวนซ้ำ เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- รูปร่าง ชนิดข้อมูล และการทำดัชนี
- เปลี่ยนรูปร่าง มุมมอง ลดมิติ และเพิ่มมิติ
- กฎการกระจายมิติที่ช่วยลดการวนซ้ำ
- เทนเซอร์สื่อสารกับ NumPy