4
$\begingroup$

This might sound a little basic but while running the code below, I wanted to see the source code of the backward function:

import torch.nn as nn

[...]
criterion = nn.CrossEntropyLoss()
loss = criterion(output, target)
loss.backward()

So I went to the PyTorch GitHub and found the CrossEntropyLoss class, but without any backward function defined. Moving up, CrossEntropyLoss extends _WeightedLoss >> _Loss >> Module then still nothing.

So, where is the backward function defined?

$\endgroup$

1 Answer 1

4
$\begingroup$

Backward function is same for all type of layers.

Look at 155 number line here.

https://github.com/pytorch/pytorch/blob/35bd2b3c8b64d594d85fc740e94c30aa67892a34/torch/tensor.py

and it will forward you to here

https://github.com/pytorch/pytorch/blob/35bd2b3c8b64d594d85fc740e94c30aa67892a34/torch/autograd/__init__.py

$\endgroup$
1
  • 1
    $\begingroup$ criterion return a Tensor... oh... i missed that part. Thanks a lot! $\endgroup$
    – Begoodpy
    Jul 8, 2020 at 17:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.