int main() {
auto x = torch::zeros({2, 2});
auto y = x;
auto m = x.clone();
auto n = torch::zeros_like(x);
n.copy_(x);
x[0][0] = 1;
cout << y[0][0] << m[0][0] << n[0][0];
return 0;
}
输出1,0,0
说明直接赋值是共享内存的,其他2种方法不会共享内存。
根据文档,clone会被记录到计算图中,而copy_则不会。
PyTorch内存管理解析
本文通过一个示例代码深入探讨了PyTorch中的内存管理机制。解释了直接赋值、clone和copy_方法在变量间共享内存的区别,以及它们在计算图中的不同作用。
1725

被折叠的 条评论
为什么被折叠?



