VSCode直观显示tensor形状
''' A simple example to show tensor shape on debugger '''
from _pydevd_bundle.pydevd_extension_api import StrPresentationProvider
from .pydevd_helpers import find_mod_attr
class PyTorchTensorShapeStr:
def can_provide(self, type_object, type_name):
torch_tensor = find_mod_attr('torch', 'Tensor')
return torch_tensor is not None and issubclass(type_object, torch_tensor)
def get_str(self, val):
dim = val.dim()
if dim == 0:
return str(val)
elif dim == 1:
return f'{val.shape[0]}: {val}'
return f'{list(val.shape)}: {val}'
import sys
if not sys.platform.startswith("java"):
StrPresentationProvider.register(PyTorchTensorShapeStr)
放到下,随后重启 VSCode 即可解决
~/.vscode/extensions/ms-python.debugpy-XXX/bundled/libs/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_pytorch_tensor_str.py
。
由于 debugpy 版本不同,路径中的 XXX 部分会不一样;如果是 VSCode Remote 环境,放到远程机器的 ~/.vscode-server/... 下的相同子目录即可。
wsl2 下是 ~/.vscode-server,如果用过了 debug 模式会自动生成 extensions文件夹,且安装好了debugpy,如"~/.vscode-server/extensions/ms-python.debugpy-2024.14.0-linux-x64"

浙公网安备 33010602011771号