深度学习杂记01
- 节省内存的方法
对某元素的算数操作可以直接在原内存上修改,但实现这种操作的前提是,该元素在内存中只被引用一次。
简单的逻辑上的计算操作,会导致内存地址的变化,比如,如下代码中的x = x + y
,x
的内存地址会发生变化:
1 | import torch |
输出:
1 | 2347673029520 |
而x += y
则不会改变x
的内存地址:
1 | x = torch.randn(3) |
输出:
1 | 2347673029520 |
注意:这种方法只适用于不需要求导的数据,即required_grad=False的数据。
- 浅拷贝与深拷贝
即torch clone 与 直接赋值 的区别。直接赋值是浅拷贝,clone是深拷贝;浅拷贝变化会影响原始数据,深拷贝不会。
1 | A = torch.randn(3, 3) |
输出:
1 | id(A): 2347686617808 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Asphyxia's Blog!
评论
ValineDisqus