在keras中实现跳过连接

在keras中实现跳过连接,keras,image-segmentation,resnet,Keras,Image Segmentation,Resnet,我正在keras实施ApesNet。它有一个具有跳过连接的ApesBlock。如何将其添加到keras中的序列模型中?ApesBlock有两个平行层,通过元素添加在最后合并。简单的答案是,不要为此使用顺序模型,而是使用函数API,实现跳过连接(也称为剩余连接)非常简单,如以下示例所示: 以防任何人仍然有相同的问题,并且合并层不起作用 我在Keras文档中找不到史努比博士写的merge。我得到一个类型错误,“模块”对象不可调用 相反,我添加了一个Add层 因此,与史努比博士的答案相同的例子是: f

我正在keras实施ApesNet。它有一个具有跳过连接的ApesBlock。如何将其添加到keras中的序列模型中?ApesBlock有两个平行层,通过元素添加在最后合并。

简单的答案是,不要为此使用顺序模型,而是使用函数API,实现跳过连接(也称为剩余连接)非常简单,如以下示例所示:


以防任何人仍然有相同的问题,并且
合并
层不起作用

我在Keras文档中找不到史努比博士写的
merge
。我得到一个类型错误,
“模块”对象不可调用

相反,我添加了一个
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])

那么,在后推过程中这不是一个问题吗,因为y有卷积的权重,z有新的张量?@Siddhartarao不,因为这都是象征性的,梯度可以通过TF/Theano直接计算。+1为什么它们被称为剩余连接?这背后的想法是什么?有人能帮助我提高理解吗?@mrk这个问题更适合@mrk。这不是暗示,你所问的是关于堆栈溢出的离题问题。
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])