Skip to content

Latest commit

 

History

History
41 lines (27 loc) · 1.79 KB

GoogLeNet.md

File metadata and controls

41 lines (27 loc) · 1.79 KB

2014'de ImageNet ILSVRC (Büyük Ölçekli Görsel Tanıma Yarışması)'de sunuldu. Google YZ biriminden Szegedy ve ekibi tarafından geliştirilmiştir. GoogLeNet, ağdaki parametreleri önemli derecede azaltan "inception" modülü kullanır. FC katmanları yerin "Average Pooling" kullanarak gereksiz parametrelerin ortadan kaldırılmasını sağlamıştır.

def inception_module(x, filters):
    conv1x1 = Conv2D(filters[0], (1, 1), padding='same', activation='relu')(x)
    
    conv3x3_reduce = Conv2D(filters[1], (1, 1), padding='same', activation='relu')(x)
    conv3x3 = Conv2D(filters[2], (3, 3), padding='same', activation='relu')(conv3x3_reduce)
    
    conv5x5_reduce = Conv2D(filters[3], (1, 1), padding='same', activation='relu')(x)
    conv5x5 = Conv2D(filters[4], (5, 5), padding='same', activation='relu')(conv5x5_reduce)
    
    maxpool = MaxPooling2D((3, 3), strides=(1, 1), padding='same')(x)
    maxpool_conv = Conv2D(filters[5], (1, 1), padding='same', activation='relu')(maxpool)
    
    output = Concatenate(axis=-1)([conv1x1, conv3x3, conv5x5, maxpool_conv])
    
    return output

input_layer = Input(shape=(224, 224, 3))

x = Conv2D(64, (7, 7), strides=(2, 2), padding='same', activation='relu')(input_layer)
x = MaxPooling2D((3, 3), strides=(2, 2), padding='same')(x)

x = Conv2D(64, (1, 1), activation='relu')(x)
x = Conv2D(192, (3, 3), padding='same', activation='relu')(x)
x = MaxPooling2D((3, 3), strides=(2, 2), padding='same')(x)

x = inception_module(x, [64, 96, 128, 16, 32, 32])
x = inception_module(x, [128, 128, 192, 32, 96, 64])
x = MaxPooling2D((3, 3), strides=(2, 2), padding='same')(x)

x = inception_module(x, [192, 96, 208, 16, 48, 64])

x = AveragePooling2D((7, 7))(x)
x = Flatten()(x)
x = Dense(1000, activation='softmax')(x) 

model = Model(input_layer, x)