官术网_书友最值得收藏!

The InceptionV3 transfer learning network

The InceptionV3 network for our task is defined in the following code block. One thing to note is that since InceptionV3 is a much deeper network, we can have a greater number of initial layers. The idea of not training all of the layers in each of the models has another advantage, with respect to data availability. If we use less data training, the weights of the entire network might lead to overfitting. Freezing the layers reduces the number of weights to train, and hence, provides a form of regularization.

Since the initial layers learn generic features irrespective of the domain of the problem, they are the best layers to freeze. We have also used dropout in the fully connected layer, to prevent overfitting:

def inception_pseudo(dim=224,freeze_layers=30,full_freeze='N'):
model = InceptionV3(weights='imagenet',include_top=False)
x = model.output
x = GlobalAveragePooling2D()(x)
x = Dense(512, activation='relu')(x)
x = Dropout(0.5)(x)
x = Dense(512, activation='relu')(x)
x = Dropout(0.5)(x)
out = Dense(5,activation='softmax')(x)
model_final = Model(input = model.input,outputs=out)
if full_freeze != 'N':
for layer in model.layers[0:freeze_layers]:
layer.trainable = False
return model_final
主站蜘蛛池模板: 青阳县| 温宿县| 商水县| 商南县| 吴旗县| 贡山| 大荔县| 依兰县| 呈贡县| 镶黄旗| 清河县| 镇雄县| 巢湖市| 三原县| 沂源县| 江门市| 九寨沟县| 集贤县| 三门峡市| 仁布县| 林西县| 衡山县| 叙永县| 五寨县| 大田县| 克什克腾旗| 丹寨县| 福贡县| 健康| 颍上县| 龙山县| 西充县| 运城市| 南京市| 永嘉县| 宁津县| 都昌县| 龙海市| 东乌| 玛曲县| 永修县|