Search code examples
kerasimage-segmentationresnet

Implementing skip connections in keras


I am implementing ApesNet in keras. It has an ApesBlock that has skip connections. How do I add this to a sequential model in keras? The ApesBlock has two parallel layers that merge at the end by element-wise addition.enter image description here


Solution

  • The easy answer is don't use a sequential model for this, use the functional API instead, implementing skip connections (also called residual connections) are then very easy, as shown in this example from the functional API guide:

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