¿Es esto un error? antorcha.__versión__ es '0.1.11+b13b701' .
Funciona bien para mí con (casi) la última versión ( '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)
salidas
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]
Hola,
El nn.Module
no tiene retroceso (ninguno de ellos lo tiene), su avance se implementa con métodos compatibles con autograd y, por lo tanto, se diferencia automáticamente.
Si desea encontrar la implementación de MultiMarginLoss
, se implementa aquí en c.
Gracias. Estoy empezando con PyTorch. Lo entiendo ahora.
Comentario más útil
Hola,
El
nn.Module
no tiene retroceso (ninguno de ellos lo tiene), su avance se implementa con métodos compatibles con autograd y, por lo tanto, se diferencia automáticamente.Si desea encontrar la implementación de
MultiMarginLoss
, se implementa aquí en c.