Pytorch: MultiMarginLoss n'a pas d'attribut 'backward'

Créé le 6 avr. 2017  ·  3Commentaires  ·  Source: pytorch/pytorch

Est-ce un bogue ? torche.__version__ est '0.1.11+b13b701' .

Commentaire le plus utile

Salut,
Le nn.Module n'a pas d'arrière (aucun d'entre eux n'en a), leur avant est implémenté avec des méthodes conformes à l'autograd et est donc automatiquement différencié.
Si vous voulez trouver l'implémentation pour MultiMarginLoss , elle est implémentée ici en c.

Tous les 3 commentaires

Fonctionne bien pour moi avec (presque) la dernière version ( '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)

les sorties

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]

Salut,
Le nn.Module n'a pas d'arrière (aucun d'entre eux n'en a), leur avant est implémenté avec des méthodes conformes à l'autograd et est donc automatiquement différencié.
Si vous voulez trouver l'implémentation pour MultiMarginLoss , elle est implémentée ici en c.

Merci. Je débute avec PyTorch. Je le comprends maintenant.

Cette page vous a été utile?
0 / 5 - 0 notes