【发布时间】:2017-11-18 05:20:39
【问题描述】:
我正在使用在 Lua 中实现的 CNN 模型 (AlexNet),使用 Torch 进行图像处理。我正在修改Torch starter code。
我的问题是我正在制作具有 18 个通道而不是 3 个通道的图像来训练模型,并且将这些图像发送到 GPU,它需要大约 20 倍(每批 2.13 秒)比发送图像时多三个通道(每批 0.14 秒)。我还尝试查看将具有 4 个通道的图像发送到 GPU 需要多长时间。我看到频道数一增加到3个频道以上,时间就增加了20倍左右。例如,即使是 4 通道的图像,每批大约需要 2 秒,这比运行 3 通道图像要多 19 倍左右。
我想知道是否有一个错误导致它需要这么长时间,如果没有任何错误,是否有什么方法可以减少这个运行时间?
【问题讨论】:
-
你在启动代码中修改了什么来增加频道?
-
我发现视频中七个帧的差异,然后将它们堆叠起来,在这种情况下,我没有使用 3 个通道的图像,而是将 18 个通道的图像作为 CNN 的输入。我已经修改了“donkey_simple.lua”,它在其中获取图像并获取视频中帧的差异并将它们堆叠起来,并且 CNN 的第一层而不是 3 层,在代码中将其更改为 18 个通道和一些张量大小。 “main.lua”的这部分“input:copy(data_im:squeeze())”需要很多时间。而且我发现不是挤的问题。
-
您是否尝试过减小批处理大小以将包含相同字节数的批处理发送到 gpu?
-
感谢您的建议,我尝试了您建议的方式。它需要和以前一样的时间。
标签: image-processing optimization lua gpu torch