No particular reason. Sometimes it’s convenient to use the nn. version of a parameterless module, like if you pass a dropout ratio into __init__ and want to use that for all dropout layers in your model.