28

我正在 keras 中实现 ApesNet。它有一个具有跳过连接的 ApesBlock。如何将其添加到 keras 中的顺序模型中?ApesBlock 有两个平行的层,最后通过元素相加合并。在此处输入图像描述

4

2 回答 2

38

简单的答案是不要为此使用顺序模型,而是使用功能 API,实现跳过连接(也称为残差连接)非常容易,如功能 API 指南中的示例所示:

from keras.layers import merge, Convolution2D, Input

# input tensor for a 3-channel 256x256 image
x = Input(shape=(3, 256, 256))
# 3x3 conv with 3 output channels (same as input channels)
y = Convolution2D(3, 3, 3, border_mode='same')(x)
# this returns x + y.
z = merge([x, y], mode='sum')
于 2017-02-22T12:20:40.817 回答
12

万一有人仍然有同样的问题并且该merge层不起作用。

merge我在 Snoopy 博士所写的 Keras 文档中找不到。我得到一个类型错误'module' object is not callable

相反,我添加了一个Add图层。

所以与史努比博士的回答相同的例子是:

from keras.layers import Add, Convolution2D, Input

# input tensor for a 3-channel 256x256 image
x = Input(shape=(3, 256, 256))
# 3x3 conv with 3 output channels (same as input channels)
y = Convolution2D(3, 3, 3, border_mode='same')(x)
# this returns x + y.
z = Add()([x, y])
于 2020-06-03T17:14:58.417 回答