首页 > 解决方案 > numpy 数组到火炬张量转换的工作

问题描述

我想知道从 NumPy 数组到张量的转换是如何在 PyTorch 和 Tensorflow 中发生的。它是创建整个数组的副本还是有一些就地机制?

其次,如何清除之前转换为张量的 NumPy 数组使用的内存。

标签: numpytensorflowpytorchtensor

解决方案


  1. 当设备是 PyTorch 中的 CPU 时,PyTorch 和 Numpy 在内存中使用相同的 n 维数组的内部表示,因此当从 Numpy 数组转换为 PyTorch 张量时,不执行复制操作,仅更改它们内部表示的方式。参考这里

  2. Python 垃圾收集器使用引用计数来清除未使用的内存,类似于 C++ 中的共享指针。


推荐阅读