我们从Python开源项目中,提取了以下22个代码示例,用于说明如何使用keras.layers.pooling.AveragePooling2D()。
def __transition_block(ip, nb_filter, compression=1.0, weight_decay=1e-4): ''' Apply BatchNorm, Relu 1x1, Conv2D, optional compression, dropout and Maxpooling2D Args: ip: keras tensor nb_filter: number of filters compression: calculated as 1 - reduction. Reduces the number of feature maps in the transition block. dropout_rate: dropout rate weight_decay: weight decay factor Returns: keras tensor, after applying batch_norm, relu-conv, dropout, maxpool ''' concat_axis = 1 if K.image_data_format() == 'channels_first' else -1 x = BatchNormalization(axis=concat_axis, epsilon=1.1e-5)(ip) x = Activation('relu')(x) x = Conv2D(int(nb_filter * compression), (1, 1), kernel_initializer='he_normal', padding='same', use_bias=False, kernel_regularizer=l2(weight_decay))(x) x = AveragePooling2D((2, 2), strides=(2, 2))(x) return x
def transition_block(ip, nb_filter, dropout_rate=None, weight_decay=1E-4): ''' Apply BatchNorm, Relu 1x1, Conv2D, optional dropout and Maxpooling2D Args: ip: keras tensor nb_filter: number of filters dropout_rate: dropout rate weight_decay: weight decay factor Returns: keras tensor, after applying batch_norm, relu-conv, dropout, maxpool ''' concat_axis = 1 if K.image_dim_ordering() == "th" else -1 x = Convolution2D(nb_filter, 1, 1, init="he_uniform", border_mode="same", bias=False, W_regularizer=l2(weight_decay))(ip) if dropout_rate: x = Dropout(dropout_rate)(x) x = AveragePooling2D((2, 2), strides=(2, 2))(x) x = BatchNormalization(mode=0, axis=concat_axis, gamma_regularizer=l2(weight_decay), beta_regularizer=l2(weight_decay))(x) return x
def downsample_block(x, nb_channels, kernel_size=3, bottleneck=True, l2_reg=1e-4): if bottleneck: out = bottleneck_layer(x, nb_channels, kernel_size=kernel_size, stride=2, l2_reg=l2_reg) # The output channels is 4x bigger on this case nb_channels = nb_channels * 4 else: out = two_conv_layer(x, nb_channels, kernel_size=kernel_size, stride=2, l2_reg=l2_reg) # Projection on the shortcut proj = Convolution2D(nb_channels, 1, 1, subsample=(2, 2), border_mode='valid', init='he_normal', W_regularizer=l2(l2_reg), bias=False)(x) # proj = AveragePooling2D((1, 1), (2, 2))(x) out = merge([proj, out], mode='sum') return out
def __transition_block(ip, nb_filter, compression=1.0, dropout_rate=None, weight_decay=1E-4): ''' Apply BatchNorm, Relu 1x1, Conv2D, optional compression, dropout and Maxpooling2D Args: ip: keras tensor nb_filter: number of filters compression: calculated as 1 - reduction. Reduces the number of feature maps in the transition block. dropout_rate: dropout rate weight_decay: weight decay factor Returns: keras tensor, after applying batch_norm, relu-conv, dropout, maxpool ''' concat_axis = 1 if K.image_dim_ordering() == "th" else -1 x = BatchNormalization(mode=0, axis=concat_axis, gamma_regularizer=l2(weight_decay), beta_regularizer=l2(weight_decay))(ip) x = Activation('relu')(x) x = Convolution2D(int(nb_filter * compression), 1, 1, init="he_uniform", border_mode="same", bias=False, W_regularizer=l2(weight_decay))(x) if dropout_rate: x = Dropout(dropout_rate)(x) x = AveragePooling2D((2, 2), strides=(2, 2))(x) return x
def build(input_shape, num_outputs, block_fn, repetitions): inputs = Input(shape = input_shape) conv1 = Conv2D(64, (7, 7), strides = (2, 2), padding = 'same')(inputs) conv1 = BatchNormalization()(conv1) conv1 = Activation('relu')(conv1) pool1 = MaxPooling2D(pool_size = (3, 3), strides = (2, 2), padding = 'same')(conv1) x = pool1 filters = 64 first_layer = True for i, r in enumerate(repetitions): x = _residual_block(block_fn, filters = filters, repetitions = r, is_first_layer = first_layer)(x) filters *= 2 if first_layer: first_layer = False # last activation <- unnecessary??? # x = BatchNormalization()(x) # x = Activation('relu')(x) _, w, h, ch = K.int_shape(x) pool2 = AveragePooling2D(pool_size = (w, h), strides = (1, 1))(x) flat1 = Flatten()(pool2) outputs = Dense(num_outputs, kernel_initializer = init, activation = 'softmax')(flat1) model = Model(inputs = inputs, outputs = outputs) return model
def transition_block(x, stage, nb_filter, compression=1.0, dropout_rate=None, weight_decay=1E-4): ''' Apply BatchNorm, 1x1 Convolution, averagePooling, optional compression, dropout # Arguments x: input tensor stage: index for dense block nb_filter: number of filters compression: calculated as 1 - reduction. Reduces the number of feature maps in the transition block. dropout_rate: dropout rate weight_decay: weight decay factor ''' eps = 1.1e-5 conv_name_base = 'conv' + str(stage) + '_blk' relu_name_base = 'relu' + str(stage) + '_blk' pool_name_base = 'pool' + str(stage) x = BatchNormalization(epsilon=eps, axis=concat_axis, name=conv_name_base+'_bn')(x) x = Scale(axis=concat_axis, name=conv_name_base+'_scale')(x) x = Activation('relu', name=relu_name_base)(x) x = Convolution2D(int(nb_filter * compression), 1, 1, name=conv_name_base, bias=False)(x) if dropout_rate: x = Dropout(dropout_rate)(x) x = AveragePooling2D((2, 2), strides=(2, 2), name=pool_name_base)(x) return x
def get_features(image, model): ''' get the feature map of all activation layer for given image and given model :param image: input image path :param model: given model :return: all activation layers features ''' # image = load_image(image_src) feature_maps = np.zeros((10, 10, 15104)) activation_layers = ['activation_' + str(i) for i in range(4, 50, 3)] start_index = 0 for i, layer_name in enumerate(activation_layers): layer = model.get_layer(layer_name) nchannel = layer.output_shape[-1] conv_output = layer.output # Adujusting pooling size with respect to input layers` size if layer.output_shape[-2] == 74: conv_output = AveragePooling2D(pool_size=(7, 7))(conv_output) if layer.output_shape[-2] == 37: conv_output = AveragePooling2D(pool_size=(4, 4), border_mode='same')(conv_output) if layer.output_shape[-2] == 19: conv_output = AveragePooling2D(pool_size=(2, 2), border_mode='same')(conv_output) featuremap_function = K.function([model.input, K.learning_phase()], [conv_output]) output = featuremap_function([image, 0]) feature_maps[:, :, start_index:start_index+nchannel] = output[0][0, :, :, :] start_index = start_index + nchannel return feature_maps
def transition_block(x, nb_channels, dropout=0., l2_reg=1e-4): x = add_layer(x, nb_channels, kernel_size=1, dropout=dropout, l2_reg=l2_reg) # x = Convolution2D(n_channels, 1, 1, border_mode='same', # init='he_normal', W_regularizer=l2(l2_reg))(x) x = AveragePooling2D()(x) return x
def transition_down(inputs, n_filters, compression=1.0, dropout=0., weight_decay=1e-4, name=''): n_filters = int(n_filters*compression) l = bn_relu_conv(inputs, n_filters, 1, dropout, name=name+'_TD') l = AveragePooling2D((2, 2), strides=(2, 2), name=name+'_TD_pool')(l) return l, n_filters # Build the DenseNet model
def __create_wide_residual_network(nb_classes, img_input, include_top, depth=28, width=8, dropout=0.0): ''' Creates a Wide Residual Network with specified parameters Args: nb_classes: Number of output classes img_input: Input tensor or layer include_top: Flag to include the last dense layer depth: Depth of the network. Compute N = (n - 4) / 6. For a depth of 16, n = 16, N = (16 - 4) / 6 = 2 For a depth of 28, n = 28, N = (28 - 4) / 6 = 4 For a depth of 40, n = 40, N = (40 - 4) / 6 = 6 width: Width of the network. dropout: Adds dropout if value is greater than 0.0 Returns:a Keras Model ''' N = (depth - 4) // 6 x = __conv1_block(img_input) nb_conv = 4 for i in range(N): x = __conv2_block(x, width, dropout) nb_conv += 2 x = MaxPooling2D((2, 2))(x) for i in range(N): x = __conv3_block(x, width, dropout) nb_conv += 2 x = MaxPooling2D((2, 2))(x) for i in range(N): x = ___conv4_block(x, width, dropout) nb_conv += 2 x = AveragePooling2D((8, 8))(x) if include_top: x = Flatten()(x) x = Dense(nb_classes, activation='softmax')(x) return x