Files
2026-07-13 13:21:43 +08:00

48 lines
1.6 KiB
Python

"""Docs: https://docs.fast.ai/pytorch_doc.html.md"""
# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/99_pytorch_doc.ipynb.
# %% auto #0
__all__ = ['PYTORCH_URL', 'pytorch_doc_link']
# %% ../nbs/99_pytorch_doc.ipynb #9e4bb500
from types import ModuleType
# %% ../nbs/99_pytorch_doc.ipynb #7a4d218c
PYTORCH_URL = 'https://pytorch.org/docs/stable/'
# %% ../nbs/99_pytorch_doc.ipynb #e3b8ce13
def _mod2page(
mod:ModuleType, # A PyTorch module
) -> str:
"Get the webpage name for a PyTorch module"
if mod == Tensor: return 'tensors.html'
name = mod.__name__
name = name.replace('torch.', '').replace('utils.', '')
if name.startswith('nn.modules'): return 'nn.html'
return f'{name}.html'
# %% ../nbs/99_pytorch_doc.ipynb #de4309e0
import importlib
# %% ../nbs/99_pytorch_doc.ipynb #597733c4
def pytorch_doc_link(
name:str # Name of a PyTorch module, class or function
) -> (str, None):
"Get the URL to the documentation of a PyTorch module, class or function"
if name.startswith('F'): name = 'torch.nn.functional' + name[1:]
if not name.startswith('torch.'): name = 'torch.' + name
if name == 'torch.Tensor': return f'{PYTORCH_URL}tensors.html'
try:
mod = importlib.import_module(name)
return f'{PYTORCH_URL}{_mod2page(mod)}'
except: pass
splits = name.split('.')
mod_name,fname = '.'.join(splits[:-1]),splits[-1]
if mod_name == 'torch.Tensor': return f'{PYTORCH_URL}tensors.html#{name}'
try:
mod = importlib.import_module(mod_name)
page = _mod2page(mod)
return f'{PYTORCH_URL}{page}#{name}'
except: return None