如何为keras图层保存输入内存?

时间:2019-05-24 18:21:21

标签: keras keras-layer

具体地说,我可以通过“重用”输入来保存输入的内存吗,尤其是在预测过程中?

考虑以下情况:

情况1:

... # net = previous_layer
net = Conv2D(64, 3)(net)
net = Conv2D(64, 3)(net)
net = Conv2D(64, 3)(net)
...

情况2:

... # net = previous_laeyr
net1 = Conv2D(64, 3)(net)
net2 = Conv2D(64, 3)(net1)
net3 = Conv2D(64, 3)(net2)
...

case1通过重用它们会节省一些输入记忆吗?我将要处理大图像(逐像素),因此我正在考虑节省输入内存。我已经按块进行了训练,我想一次加载整个图像以进行预测,而不是切成块。感谢您的评论。

1 个答案:

答案 0 :(得分:0)

如果您的网络是线性的,那么,是的,请像情况1那样重新使用变量。这就像是顺序模型(而您正在使用keras函数)。但是,许多网络多次使用某些层的输出。一层的输出可能成为多个未来层的输入,在这种情况下,相关层将需要唯一的变量,如情况2所示。