小编lp5*_*lp5的帖子

当我增加批量大小时,为什么tensorflow GPU内存使用量会减少?

最近我使用Tensorflow和PyTorch实现了VGG-16网络,数据集是CIFAR-10.每张图片为32*32 RGB.

我在开始时使用64批量大小,而我发现PyTorch使用的GPU内存比tensorflow少得多.然后我做了一些实验,得到了一个数字,发布在下面.

图:GPU内存使用比较

经过一番研究,我知道使用BFC算法管理内存的张量流.因此,它可以解释为什么tensorflow的内存使用减少或增加2048,1024,... MB,有时内存使用不会增加批量大小.

但我仍然感到困惑,为什么当批量大小为512时,内存使用率低于批量大小为384,448等,批量大小较小.与批量大小为1024到1408,批量大小为2048到2688时相同.

这是我的源代码:

PyTorch:https://github.com/liupeng3425/tesorflow-vgg/blob/master/vgg-16-pytorch.py

Tensorflow:https://github.com/liupeng3425/tesorflow-vgg/blob/master/vgg-16.py


编辑:我的计算机上有两个Titan XP,操作系统:Linux Mint 18.2 64位.

我用命令确定GPU内存使用情况nvidia-smi.

我的代码在GPU1上运行,GPU1在我的代码中定义:

os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = "1"
Run Code Online (Sandbox Code Playgroud)

我确信只有一个使用GPU1的应用程序.

GPU内存使用情况可以通过下面的应用程序列表确定.例如,就像下面发布的屏幕截图一样,进程名称是/usr/bin/python3,其GPU内存使用量为1563 MiB.

图:终端nvidia-smi

tensorflow pytorch

8
推荐指数
1
解决办法
689
查看次数

标签 统计

pytorch ×1

tensorflow ×1