2017-06-01 58 views
0

我正在Caffe中测试FCN-VGG16网络。我不是将输入图像调整为固定大小,而是每次重塑网络图像大小。我在matcaffe和pycaffe中都试过了。在这两种情况下,它似乎都能够运行小图像(例如,500x500)。但是,当我有更大尺寸的图像(例如1920 x 1080)时,出现“检查失败:错误== cudaSuccess(2 vs 0)内存不足”的错误。我在具有12 GB内存的Quadro M6000 GPU上运行此程序。任何帮助/建议,将不胜感激。在大图像尺寸下测试FCN

回答

1

我知道这个消息很明显,但是您需要减少输入大小:GPU没有足够的板载内存来存放您输入的所有内容。你能减少批量吗?如果不是,你真的需要整个2M像素?大多数模型在裁剪或缩小图像时效果都很好。将其作为输入处理的一部分(在CPU上),并为任何正弦输入进行参数化。

调整网络的大小在内存中很昂贵,尤其是如果您调整全部图层,则会缩放输入尺寸。在这种情况下,这会增加大约8倍的内存需求。

作为您可以检查的大小,请在初始化网络时查看内存数据;我相信Caffe会根据图层报告内存需求。

+0

感谢您的快速回复。为了回答你的问题,我使用1的批量大小,并且使用以下命令重塑网络:net.blobs ['data']。reshape(1,* im.shape)。我实际上已经尝试将图像大小调整为固定大小,然后进行测试。但是,我对结果不满意,而且我想知道它是否与调整大小有关。由于我有各种各样的输入尺寸,我担心调整到固定尺寸会影响性能(例如,对于某些图像,纵横比会发生显着变化)。 – user6137678

+0

由于我有广泛的输入尺寸,也许我不应该将所有图像的大小调整为固定大小。相反,我可以将每个图像的大小调整为较小,但保留宽高比。但是,在这种情况下,输入图像的大小仍然可变,所以我仍然需要重新塑造网络。 – user6137678

+0

对。只要您将足迹保持在“合理”范围内,您可以重新塑造网络 - “合理”由您的RAM大小决定。 – Prune