DAI-utvecklareLaboration· ca 45 min· i webbläsaren
Labb: matrismultiplikation och ett lager i ett neuronnät
Implementera matris–vektor- och matris–matris-multiplikation med loopar, verifiera mot NumPy, och bygga ett lager `W x + b` med ReLU.
Lär ut: Matriser och matrismultiplikation
Kräver: Vektorer
Teori
(AB)ᵢⱼ = Σₖ Aᵢₖ Bₖⱼ: rad i i A gånger kolumn j i B. Dimensionerna måste matcha: m×n gånger n×p ger m×p. Ett lager i ett nät är exakt detta plus en böj.
Deluppgifter
- matvec —
matvec(A, x)med listor av listor. - matmul —
matmul(A, B)— kasta ValueError om dimensionerna inte matchar. - lager —
lager(W, x, b)= ReLU(W x + b).
Startkoden
körs i din webbläsaredef matvec(A, x):
# TODO: en skalärprodukt per rad
...
def matmul(A, B):
# TODO: kontrollera dimensioner, tre loopar
...
def lager(W, x, b):
# TODO: ReLU(W x + b)
...
Du skriver koden, tester du inte ser avgör om den håller. Skapa ett gratis konto för att köra labben.
Prova diagnosenSkapa konto gratisFörväntade resultat
matvec([[1,2],[3,4]],[5,6]) = [17, 39]; 5×3 · 3×7 → 5×7; 3×4 · 3×4 → ValueError; lager ger inga negativa tal.
Vanliga fel
- Byter rad och kolumn i inre loopen.
- Glömmer kontrollera
len(A[0]) == len(B). - ReLU på fel ställe (före bias).