基本思想:不需要人为决定使用哪个过滤器,或是否需要池化,而是由网络自行确定这些参数,你可以给网络添加这些参数的所有可能值,然后把这些输出连接起来,让网络自己学习它需要什么样的参数,采用哪些过滤器组合。
Inception V1
它最大的特点是控制了计算量和参数量的同时,获得了非常好的分类性能——top-5错误率6.67%,只有AlexNet的一半不到。Inception V1有22层深,比AlexNet的8层或者VGGNet的19层还要更深。但其计算量只有15亿次浮点运算,同时只有500万的参数量,仅为AlexNet参数量(6000万)的1/12,却可以达到远胜于AlexNet的准确率,可以说是非常优秀并且非常实用的模型。
在这里插入图片描述
def inception_block(x, filters):
t1 = Conv2D(filters=filters[0], kernel_size=1, activation='relu')(x)
t2 = Conv2D(filters=filters[1], kernel_size=1, activation='relu')(x)
t2 = Conv2D(filters=filters[2], kernel_size=3, padding='same', activation='relu')(t2)
t3 = Conv2D(filters=filters[3], kernel_size=1, activation='relu')(x)
t3 = Conv2D(filters=filters[4], kernel_size=5, padding='same', activation='relu')(t3)
t4 = MaxPool2D(pool_size=3, strides=1, padding='same')(x)
t4 = Conv2D(filters=filters[5], kernel_size=1, activation='relu'