densenetFCN.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:keras_zoo 作者: david-vazquez 项目源码 文件源码
def DenseNet(inputs, n_classes, n_dense_block, n_layers, growth_rate,
             n_initial_filters, compression=1.0, use_bottleneck=False,
             dropout=None, weight_decay=1e-4, initial_conv=3):

    # Initial convolution
    if initial_conv==3:
        l, n_filters = initial_conv_3x3(inputs, n_initial_filters,
                                        weight_decay)
    elif initial_conv==7:
        l, n_filters = initial_conv_7x7(inputs, n_initial_filters,
                                        weight_decay)
    else:
        raise ValueError('Unknown initial convolution')

    # Add dense blocks
    for block_idx in range(n_dense_block):
        # Add dense block
        l, n_filters = dense_block(l, n_layers[block_idx], n_filters,
                                   growth_rate, dropout, use_bottleneck,
                                   weight_decay, name='block'+str(block_idx))
        # Add transition down except for the last block
        if block_idx<(n_dense_block - 1):
            l, n_filters = transition_down(l, n_filters, compression, dropout,
                                           weight_decay,
                                           name='block'+str(block_idx))

    # Add classifier at the end
    l = BatchNormalization(mode=0, axis=channel_idx,
                           gamma_regularizer=l2(weight_decay),
                           beta_regularizer=l2(weight_decay),
                           name='classifier_bn')(l)
    l = Activation('relu', name='classifier_relu')(l)
    l = GlobalAveragePooling2D(name='classifier_pool')(l)
    l = Dense(n_classes,
              activation='softmax',
              W_regularizer=l2(weight_decay),
              b_regularizer=l2(weight_decay),
              name='classifier_dense')(l)

    model = Model(input=[inputs], output=[l], name="DenseNet")
    return model


# Build the densenet model
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号