我们从Python开源项目中,提取了以下10个代码示例,用于说明如何使用keras.layers.merge.Add()。
def res_block(input, filters, kernel_size=(3,3), strides=(1,1)): # conv_block:add(nn.SpatialReflectionPadding(1, 1, 1, 1)) # conv_block:add(nn.SpatialConvolution(dim, dim, 3, 3, 1, 1, p, p)) # conv_block:add(normalization(dim)) # conv_block:add(nn.ReLU(true)) x = padding()(input) x = Conv2D(filters=filters, kernel_size=kernel_size, strides=strides,)(x) x = normalize()(x) x = Activation('relu')(x) x = padding()(x) x = Conv2D(filters=filters, kernel_size=kernel_size, strides=strides,)(x) x = normalize()(x) # merged = Concatenate(axis=get_filter_dim())([input, x]) merged = Add()([input, x]) return merged
def conv_block(x0, scale): x = Conv2D(int(64*scale), (1, 1))(x0) x = InstanceNormalization()(x) x = LeakyReLU()(x) x = Conv2D(int(64*scale), (3, 3), padding='same')(x) x = InstanceNormalization()(x) x = LeakyReLU()(x) x = Conv2D(int(256*scale), (1, 1))(x) x = InstanceNormalization()(x) x1 = Conv2D(int(256*scale), (1, 1))(x0) x1 = InstanceNormalization()(x1) x = Add()([x, x1]) x = LeakyReLU()(x) return x
def residual_short(prev_layer, level, pad=1, lvl=1, sub_lvl=1, modify_stride=False): prev_layer = Activation('relu')(prev_layer) block_1 = residual_conv(prev_layer, level, pad=pad, lvl=lvl, sub_lvl=sub_lvl, modify_stride=modify_stride) block_2 = short_convolution_branch(prev_layer, level, lvl=lvl, sub_lvl=sub_lvl, modify_stride=modify_stride) added = Add()([block_1, block_2]) return added
def residual_empty(prev_layer, level, pad=1, lvl=1, sub_lvl=1): prev_layer = Activation('relu')(prev_layer) block_1 = residual_conv(prev_layer, level, pad=pad, lvl=lvl, sub_lvl=sub_lvl) block_2 = empty_branch(prev_layer) added = Add()([block_1, block_2]) return added
def build(inp, encoder, nc, valid_shapes): side = conv_block_side(inp) x = Lambda( interp, arguments={'shape': valid_shapes[3]}, name='sub24_sum_interp')(encoder) main = ConvBN( filters=128, kernel_size=3, dilation_rate=2, padding='same', name='conv_sub2')(x) x = Add(name='sub12_sum')([main, side]) x = Activation('relu')(x) x = Lambda( interp, arguments={'shape': valid_shapes[2]}, name='sub12_sum_interp')(x) x = Conv2D( filters=nc, kernel_size=1, name='conv6_cls')(x) out = Lambda( interp, arguments={'shape': valid_shapes[0]}, name='conv6_interp')(x) return out
def identity_block(x0, scale): x = Conv2D(int(64*scale), (1, 1))(x0) x = InstanceNormalization()(x) x = LeakyReLU()(x) x = Conv2D(int(64*scale), (3, 3), padding='same')(x) x = InstanceNormalization()(x) x = LeakyReLU()(x) x = Conv2D(int(256*scale), (1, 1))(x) x = InstanceNormalization()(x) x = Add()([x, x0]) x = LeakyReLU()(x) return x
def identity_block(kernel_size, filters, stage, block, weight_decay=0., batch_momentum=0.99): '''The identity_block is the block that has no conv layer at shortcut # Arguments kernel_size: defualt 3, the kernel size of middle conv layer at main path filters: list of integers, the nb_filters of 3 conv layer at main path stage: integer, current stage label, used for generating layer names block: 'a','b'..., current block label, used for generating layer names ''' def f(input_tensor): nb_filter1, nb_filter2, nb_filter3 = filters if K.image_data_format() == 'channels_last': bn_axis = 3 else: bn_axis = 1 conv_name_base = 'res' + str(stage) + block + '_branch' bn_name_base = 'bn' + str(stage) + block + '_branch' x = Conv2D(nb_filter1, (1, 1), name=conv_name_base + '2a', kernel_regularizer=l2(weight_decay))(input_tensor) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2a', momentum=batch_momentum)(x) x = Activation('relu')(x) x = Conv2D(nb_filter2, (kernel_size, kernel_size), padding='same', name=conv_name_base + '2b', kernel_regularizer=l2(weight_decay))(x) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2b', momentum=batch_momentum)(x) x = Activation('relu')(x) x = Conv2D(nb_filter3, (1, 1), name=conv_name_base + '2c', kernel_regularizer=l2(weight_decay))(x) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2c', momentum=batch_momentum)(x) x = Add()([x, input_tensor]) x = Activation('relu')(x) return x return f
def atrous_identity_block(kernel_size, filters, stage, block, weight_decay=0., atrous_rate=(2, 2), batch_momentum=0.99): '''The identity_block is the block that has no conv layer at shortcut # Arguments kernel_size: defualt 3, the kernel size of middle conv layer at main path filters: list of integers, the nb_filters of 3 conv layer at main path stage: integer, current stage label, used for generating layer names block: 'a','b'..., current block label, used for generating layer names ''' def f(input_tensor): nb_filter1, nb_filter2, nb_filter3 = filters if K.image_data_format() == 'channels_last': bn_axis = 3 else: bn_axis = 1 conv_name_base = 'res' + str(stage) + block + '_branch' bn_name_base = 'bn' + str(stage) + block + '_branch' x = Conv2D(nb_filter1, (1, 1), name=conv_name_base + '2a', kernel_regularizer=l2(weight_decay))(input_tensor) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2a', momentum=batch_momentum)(x) x = Activation('relu')(x) x = Conv2D(nb_filter2, (kernel_size, kernel_size), dilation_rate=atrous_rate, padding='same', name=conv_name_base + '2b', kernel_regularizer=l2(weight_decay))(x) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2b', momentum=batch_momentum)(x) x = Activation('relu')(x) x = Conv2D(nb_filter3, (1, 1), name=conv_name_base + '2c', kernel_regularizer=l2(weight_decay))(x) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2c', momentum=batch_momentum)(x) x = Add()([x, input_tensor]) x = Activation('relu')(x) return x return f
def atrous_conv_block(kernel_size, filters, stage, block, weight_decay=0., strides=(1, 1), atrous_rate=(2, 2), batch_momentum=0.99): '''conv_block is the block that has a conv layer at shortcut # Arguments kernel_size: defualt 3, the kernel size of middle conv layer at main path filters: list of integers, the nb_filters of 3 conv layer at main path stage: integer, current stage label, used for generating layer names block: 'a','b'..., current block label, used for generating layer names ''' def f(input_tensor): nb_filter1, nb_filter2, nb_filter3 = filters if K.image_data_format() == 'channels_last': bn_axis = 3 else: bn_axis = 1 conv_name_base = 'res' + str(stage) + block + '_branch' bn_name_base = 'bn' + str(stage) + block + '_branch' x = Conv2D(nb_filter1, (1, 1), strides=strides, name=conv_name_base + '2a', kernel_regularizer=l2(weight_decay))(input_tensor) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2a', momentum=batch_momentum)(x) x = Activation('relu')(x) x = Conv2D(nb_filter2, (kernel_size, kernel_size), padding='same', dilation_rate=atrous_rate, name=conv_name_base + '2b', kernel_regularizer=l2(weight_decay))(x) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2b', momentum=batch_momentum)(x) x = Activation('relu')(x) x = Conv2D(nb_filter3, (1, 1), name=conv_name_base + '2c', kernel_regularizer=l2(weight_decay))(x) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2c', momentum=batch_momentum)(x) shortcut = Conv2D(nb_filter3, (1, 1), strides=strides, name=conv_name_base + '1', kernel_regularizer=l2(weight_decay))(input_tensor) shortcut = BatchNormalization(axis=bn_axis, name=bn_name_base + '1', momentum=batch_momentum)(shortcut) x = Add()([x, shortcut]) x = Activation('relu')(x) return x return f
def conv_block(kernel_size, filters, stage, block, weight_decay=0., strides=(2, 2), batch_momentum=0.99): '''conv_block is the block that has a conv layer at shortcut # Arguments kernel_size: defualt 3, the kernel size of middle conv layer at main path filters: list of integers, the nb_filters of 3 conv layer at main path stage: integer, current stage label, used for generating layer names block: 'a','b'..., current block label, used for generating layer names Note that from stage 3, the first conv layer at main path is with strides=(2,2) And the shortcut should have strides=(2,2) as well ''' def f(input_tensor): nb_filter1, nb_filter2, nb_filter3 = filters if K.image_data_format() == 'channels_last': bn_axis = 3 else: bn_axis = 1 conv_name_base = 'res' + str(stage) + block + '_branch' bn_name_base = 'bn' + str(stage) + block + '_branch' x = Conv2D(nb_filter1, (1, 1), strides=strides, name=conv_name_base + '2a', kernel_regularizer=l2(weight_decay))(input_tensor) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2a', momentum=batch_momentum)(x) x = Activation('relu')(x) x = Conv2D(nb_filter2, (kernel_size, kernel_size), padding='same', name=conv_name_base + '2b', kernel_regularizer=l2(weight_decay))(x) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2b', momentum=batch_momentum)(x) x = Activation('relu')(x) x = Conv2D(nb_filter3, (1, 1), name=conv_name_base + '2c', kernel_regularizer=l2(weight_decay))(x) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2c', momentum=batch_momentum)(x) shortcut = Conv2D(nb_filter3, (1, 1), strides=strides, name=conv_name_base + '1', kernel_regularizer=l2(weight_decay))(input_tensor) shortcut = BatchNormalization(axis=bn_axis, name=bn_name_base + '1', momentum=batch_momentum)(shortcut) x = Add()([x, shortcut]) x = Activation('relu')(x) return x return f # Atrous-Convolution version of residual blocks