最近我使用Tensorflow和PyTorch实现了VGG-16网络,数据集是CIFAR-10.每张图片为32*32 RGB.
我在开始时使用64批量大小,而我发现PyTorch使用的GPU内存比tensorflow少得多.然后我做了一些实验,得到了一个数字,发布在下面.

经过一番研究,我知道使用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.
