在keras中实现跳过连接

时间:2017-02-22 06:54:34

标签: keras image-segmentation resnet

我在keras中实现ApesNet。它有一个跳过连接的ApesBlock。如何将其添加到keras中的顺序模型? ApesBlock有两个并行的层,最后通过元素添加进行合并。enter image description here

2 个答案:

答案 0 :(得分:24)

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

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')

答案 1 :(得分:1)

万一仍然有相同的问题,而merge层不起作用。

我在Snoopy博士所写的Keras文档中找不到merge。我收到类型错误'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])