Pytorch: MultiMarginLoss não tem atributo 'backward'

Criado em 6 abr. 2017  ·  3Comentários  ·  Fonte: pytorch/pytorch

Isso é um inseto? tocha.__version__ é '0.1.11+b13b701' .

Comentários muito úteis

Oi,
O nn.Module não tem um backward (nenhum deles tem), seu forward é implementado com métodos compatíveis com autograd e, portanto, é diferenciado automaticamente.
Se você quiser encontrar a implementação para MultiMarginLoss , ela está implementada aqui em c.

Todos 3 comentários

Funciona bem para mim com (quase) a versão mais recente ( '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)

saídas

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]

Oi,
O nn.Module não tem um backward (nenhum deles tem), seu forward é implementado com métodos compatíveis com autograd e, portanto, é diferenciado automaticamente.
Se você quiser encontrar a implementação para MultiMarginLoss , ela está implementada aqui em c.

Obrigado. Estou apenas começando com o PyTorch. Eu entendo agora.

Esta página foi útil?
0 / 5 - 0 avaliações