Intellij idea 是否配置PyCharm调试器以显示数组/张量形状?

Intellij idea 是否配置PyCharm调试器以显示数组/张量形状?,intellij-idea,pycharm,Intellij Idea,Pycharm,当我使用PyCharm进行调试时,我希望调试器显示NumPy数组/Jax数组/PyTorch张量的形状。相反,我看到了他们的价值观: 有没有办法配置PyCharm的调试器,以便显示这些多维数组的形状?调试器只显示内存中的对象。因此,如果您创建一个表示形状的对象,您应该在调试器中看到它 例如,对于numpy,它是numpy.array()。因此,如果您创建一个表示形状的对象,您应该在调试器中看到它 例如,对于numpy,它是numpy.array().shape我通过对成员函数torch.Ten

当我使用PyCharm进行调试时,我希望调试器显示NumPy数组/Jax数组/PyTorch张量的形状。相反,我看到了他们的价值观:


有没有办法配置PyCharm的调试器,以便显示这些多维数组的形状?

调试器只显示内存中的对象。因此,如果您创建一个表示形状的对象,您应该在调试器中看到它


例如,对于numpy,它是
numpy.array()。因此,如果您创建一个表示形状的对象,您应该在调试器中看到它


例如,对于numpy,它是
numpy.array().shape

我通过对成员函数
torch.Tensor.\uuu repr\uuu
进行黑客攻击来实现这一点,因为PyCharm调试器调用
\uu repr\uu
来获取对象的字符串表示

导入火炬
old_repr=火炬张量__
定义张量信息(张量):
返回repr(tensor.shape)[6:][+''+repr(tensor.dtype)[6:][+'@'+str(tensor.device)+'\n'+old_repr(tensor)
torch.Tensor.\u_repr\u_=张量信息
在PyCharm调试器中,您将看到如下表示:

打印(火炬一号(3,3)) 大小([3,3])float32@cpu 张量([[1,1,1.], [1., 1., 1.], [1., 1., 1.]])
我的变量检查器的快照:

我通过破解成员函数
torch.Tensor.\uuuu repr\uuuu
来实现这一点,因为PyCharm调试器调用
\uuuu repr\uuu
来获取对象的字符串表示

导入火炬
old_repr=火炬张量__
定义张量信息(张量):
返回repr(tensor.shape)[6:][+''+repr(tensor.dtype)[6:][+'@'+str(tensor.device)+'\n'+old_repr(tensor)
torch.Tensor.\u_repr\u_=张量信息
在PyCharm调试器中,您将看到如下表示:

打印(火炬一号(3,3)) 大小([3,3])float32@cpu 张量([[1,1,1.], [1., 1., 1.], [1., 1., 1.]]) 我的变量检查器的快照:

调试器不只是在内存中显示对象;它选择要在对象旁边显示的属性。我想更改显示的默认属性,以便在对象旁边显示
np.array().shape
,而无需在调试器控制台中“打开”对象,感谢您的澄清。不幸的是,PyCharm中没有这样的功能,所以请随意提交一个功能请求,查看上面李其迈的回答^^:DDebugger不仅仅显示内存中的对象;它选择要在对象旁边显示的属性。我想更改显示的默认属性,以便在对象旁边显示
np.array().shape
,而无需在调试器控制台中“打开”对象,感谢您的澄清。不幸的是,PyCharm中没有这样的功能,所以请随意提交一个功能请求,以查看上面李其迈的回答^^:D