Advertisement

在PyTorch中进行网络 training 时遇到 的 memory 不足 问题

阅读量:

在近期进行代码编写的过程中,遇到了一个较为棘手的问题,经过深入探究后,最终成功找到了解决方案,现将整个处理过程记录如下。

由于当前所开展的工作并非完全依赖于神经网络结构,仅采用了反向传播算法,因此我所设计的前向传播方式与传统方法存在差异。传统方式中,输入数据通过网络结构逐层传递最终获得输出结果,而我的输出则是通过特定的更新公式计算得出。换句话说,该更新公式所产生的结果即被视为神经网络的输出,这也正是问题产生的关键所在。

下图展示了改动之前第十次迭代过程中CPU内存的使用情况

在每次迭代过程中,输入数据会通过更新公式进行前向传播,此时系统会出现一定程度的内存泄漏现象。起初我并未意识到这一问题的具体成因,误以为仅仅是计算过程所导致的内存占用。为了解决这一问题,我采用了pip install memory_profiler这一工具进行安装,该工具能够有效监控内存使用情况。其使用方式为:首先通过from memory_profiler import profile导入相关模块,随后在目标函数定义前添加**@profile(precision=4, stream=open('te

全部评论 (0)

还没有任何评论哟~