首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >焦火炬张量及其转置有不同的存储空间

焦火炬张量及其转置有不同的存储空间
EN

Stack Overflow用户
提问于 2022-09-18 08:37:56
回答 1查看 43关注 0票数 0

我读了一本书“与毕火炬的深度学习”,并尝试了一个例子,这个例子表明张量和它的转位共享相同的存储空间。

但是,当我在本地机器上试用它时,我可以看到两者的存储空间是不同的。只是想知道为什么这里会是这样的?

我尝试过的代码和输出如下:

代码语言:javascript
复制
>>> points = torch.tensor([[4.0, 1.0], [5.0, 3.0], [2.0, 1.0]])
>>> points_t = torch.transpose(points,0,1)
>>> points_t
tensor([[4., 5., 2.],
        [1., 3., 1.]])
>>> id(points.storage())==id(points_t.storage())
False
>>> id(points.storage())
2796700202176
>>> id(points_t.storage())
2796700201888

我的python版本是3.9.7,py手电版本是1.11.0

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-18 09:09:44

您需要比较存储的指针,而不是它的id。

代码语言:javascript
复制
>>> points = torch.tensor([[4.0, 1.0], [5.0, 3.0], [2.0, 1.0]])
>>> points_t = torch.transpose(points,0,1)
>>> points_t
tensor([[4., 5., 2.],
        [1., 3., 1.]])
>>> points.storage().data_ptr() == points_t.storage().data_ptr()
True

id比较出现错误的原因是Python (points和points_t)是不同的对象,但是底层存储(为保存数据而分配的内存)是相同的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73761229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档