def _initialize_model(self):
input_layer = Input(shape=self.input_shape)
tower_1 = Convolution2D(16, 1, 1, border_mode="same", activation="elu")(input_layer)
tower_1 = Convolution2D(16, 3, 3, border_mode="same", activation="elu")(tower_1)
tower_2 = Convolution2D(16, 1, 1, border_mode="same", activation="elu")(input_layer)
tower_2 = Convolution2D(16, 3, 3, border_mode="same", activation="elu")(tower_2)
tower_2 = Convolution2D(16, 3, 3, border_mode="same", activation="elu")(tower_2)
tower_3 = MaxPooling2D((3, 3), strides=(1, 1), border_mode="same")(input_layer)
tower_3 = Convolution2D(16, 1, 1, border_mode="same", activation="elu")(tower_3)
merged_layer = merge([tower_1, tower_2, tower_3], mode="concat", concat_axis=1)
output = AveragePooling2D((7, 7), strides=(8, 8))(merged_layer)
output = Flatten()(output)
output = Dense(self.action_count)(output)
model = Model(input=input_layer, output=output)
model.compile(rmsprop(lr=self.model_learning_rate, clipvalue=1), "mse")
return model
评论列表
文章目录