将NumPy数组加载到TensorFlow后如何释放其内存?
释放NumPy数组及TensorFlow数据集占用内存的方法
问题核心:tf.data.Dataset.from_tensor_slices会保留对原NumPy数组的引用,所以仅删除原数组变量无法释放内存,必须先断开数据集的引用链。
具体操作步骤:
- 先删除TensorFlow数据集对象,切断其对原NumPy数组的引用:
del train_dataset, test_dataset - 再删除不再需要的NumPy数组变量:
del x_train, x_test, y_train, y_test - 强制触发Python垃圾回收,彻底释放内存:
import gc gc.collect()
额外建议:
- 若在Colab环境中上述方法仍未生效,可尝试重启运行时(注意会丢失当前会话所有变量)。
- 后续加载数据时,建议直接用TensorFlow的文件读取API(如
tf.io.read_file)从磁盘加载数据,跳过先转为NumPy数组的步骤,从根源减少内存占用。
内容的提问来源于stack exchange,提问作者berinaniesh
相关产品推荐
相关产品推荐

