当前位置:  开发笔记 > 编程语言 > 正文

何时在Caffe中使用就地层?

如何解决《何时在Caffe中使用就地层?》经验,为你挑选了1个好方法。

通过将底部和顶部blob设置为相同,我们可以告诉Caffe进行"就地"计算以保持内存消耗.

目前,我知道我可以就地安全地使用"BatchNorm","Scale"并且"ReLU"层(请让我知道,如果我错了).虽然它似乎对其他层有一些问题(这个问题似乎是一个例子).

何时在Caffe中使用就地层?
它如何与反向传播一起工作?



1> Shai..:

正如您所指出的那样,就地层通常不会"开箱即用".
对于某些层,它非常简单("ReLU"和其他神经元激活层).
但是,对于其他人来说,它需要特殊的代码处理.例如,"PReLU"layer 的实现具有特定的缓存bottom_memory_成员变量,用于存储backprop所需的信息.
您可以看到专门测试的其他图层的类似代码,if (top[0] == bottom[0])以查看该图层是否在"就地"情况下使用.

此外,它没有什么意义有就地层的量,输入和输出是不同的形状,从而层,例如"Convolution","InnerProduct","Pool"不被视为对"就地"层的候选者.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有