动手学计算机视觉---inception v4 源码分析

动手学计算机视觉--1

第一章,第4篇,上篇内容中对网络结构以及代码实现进行了一一对应,使用keras搭建网络模型往往更加直观,本篇主要内容如下:

继续完成网络主结构代码阅读,简单介绍其余文件的作用,介绍专栏接下来的内容

1 代码阅读

网络结构

动手学计算机视觉---inception v4 源码分析_第1张图片

    if include_top:
        # 1 x 1 x 1536
        x = AveragePooling2D((8,8), padding='valid')(x)  #使用均值池化操作
        x = Dropout(dropout_keep_prob)(x)                #使用剪纸操作
        x = Flatten()(x)                                 #将x展开
        # 1536
        x = Dense(units=num_classes, activation='softmax')(x)  #全连接,并使用softmax预测

    model = Model(inputs, x, name='inception_v4')

模型加载

# load weights
    if weights == 'imagenet':
        if K.image_data_format() == 'channels_first':
            if K.backend() == 'tensorflow':
                warnings.warn('You are using the TensorFlow backend, yet you '
                              'are using the Theano '
                              'image data format convention '
                              '(`image_data_format="channels_first"`). '
                              'For best performance, set '
                              '`image_data_format="channels_last"` in '
                              'your Keras config '
                              'at ~/.keras/keras.json.')
#下面将根据逻辑加载两种不同的权重
        if include_top:
            '''
            weights_path = get_file(
                'inception-v4_weights_tf_dim_ordering_tf_kernels.h5',
                WEIGHTS_PATH,
                cache_subdir='models',
                md5_hash='9fe79d77f793fe874470d84ca6ba4a3b')
            '''
            weights_path = "E:/keras-inceptionV4-master/inception-v4_weights_tf_dim_ordering_tf_kernels.h5"
        else:
            weights_path = get_file(
                'inception-v4_weights_tf_dim_ordering_tf_kernels_notop.h5',
                WEIGHTS_PATH_NO_TOP,
                cache_subdir='models',
                md5_hash='9296b46b5971573064d12e4669110969')
##下面是keras中加载模型权重的方法,model.load_weights()
        model.load_weights(weights_path, by_name=True)
    return model

 

2 文件介绍

validation_utils,为标签转换工具,convert_weights主要为模型权重转换代码(不同框架的模型文件格式有所不同)

动手学计算机视觉---inception v4 源码分析_第2张图片

3 后续介绍

第一章内容到此结束,在第一章内容中,通过图像分类的例子,分析了网络结构与代码的对应关系,简单讨论了包管理工具Anaconda与集成开发环境Pycharm

在专栏第二章内容中,将介绍深度学习与计算机视觉结合时常用的操作,包括二维卷积,填充,池化等内容,主要使用框架MXNET

更多内容请持续关注

 

你可能感兴趣的:(动手学计算机视觉,深度学习,计算机视觉)