I total agree with you. However, I found there is one interesting usage here:

  
      github.com
  
  
    OpenNMT/OpenNMT-py/blob/master/train.py 355
#!/usr/bin/env python

from __future__ import division

import argparse
import glob
import os
import sys
import random

import torch
import torch.nn as nn
from torch import cuda

import onmt
import onmt.io
import onmt.Models
import onmt.ModelConstructor
import onmt.modules
from onmt.Utils import use_gpu


  This file has been truncated. show original

  
  
    
    
  
  


in line 175, there is no .backward() has been called yet, but the outputs.grad is not None.