ΠΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°? ΡΠ°ΠΊΠ΅Π».__Π²Π΅ΡΡΠΈΡ__ '0.1.11+b13b701' .
Π£ ΠΌΠ΅Π½Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ (ΠΏΠΎΡΡΠΈ) ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ( '0.1.11+8aa1cef'
)
import torch
import torch.nn as nn
from torch.autograd import Variable
y = Variable(torch.rand(5, 3), requires_grad=True)
t = Variable(torch.LongTensor(5).random_(0, 2))
m = nn.MultiMarginLoss()
loss = m(y, t)
loss.backward()
print(y.grad)
Π²ΡΡ ΠΎΠ΄Ρ
Variable containing:
-0.1333 0.0667 0.0667
0.0667 -0.1333 0.0667
0.0667 -0.1333 0.0667
0.0667 -0.1333 0.0667
0.0667 -0.1333 0.0667
[torch.FloatTensor of size 5x3]
ΠΡΠΈΠ²Π΅Ρ,
Π£ nn.Module
Π½Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ (Π½ΠΈ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ
Π½Π΅Ρ), ΠΈΡ
ΠΏΡΡΠΌΠΎΠΉ ΠΏΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ
Ρ Π°Π²ΡΠΎΠ³ΡΠ°Π΄ΠΎΠΌ, ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΡΡΠ΅ΡΡΡ.
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π½Π°ΠΉΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ MultiMarginLoss
, ΠΎΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π·Π΄Π΅ΡΡ, Π² c.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ. Π― ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ PyTorch. Π― ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡΠΈΠ²Π΅Ρ,
Π£
nn.Module
Π½Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ (Π½ΠΈ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ Π½Π΅Ρ), ΠΈΡ ΠΏΡΡΠΌΠΎΠΉ ΠΏΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ Ρ Π°Π²ΡΠΎΠ³ΡΠ°Π΄ΠΎΠΌ, ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΡΡΠ΅ΡΡΡ.ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π½Π°ΠΉΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ
MultiMarginLoss
, ΠΎΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π·Π΄Π΅ΡΡ, Π² c.