これはバグですか? torch .__ version__は '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
には後方がなく(いずれもありません)、前方はautograd準拠のメソッドで実装されているため、自動的に区別されます。
MultiMarginLoss
の実装を見つけたい場合は、ここでcに実装されています。
ありがとう。 PyTorchを使い始めたばかりです。 私は今それを理解しています。
最も参考になるコメント
こんにちは、
nn.Module
には後方がなく(いずれもありません)、前方はautograd準拠のメソッドで実装されているため、自動的に区別されます。MultiMarginLoss
の実装を見つけたい場合は、ここでcに実装されています。