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"

参考自: https://www.zhihu.com/question/560178647

posted @ 2025-10-21 19:08  solarlemon  阅读(31)  评论(0)    收藏  举报