12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- '''
- Created on 2019年4月11日
- @author: User
- '''
- from keras import layers,models,losses,optimizers
- from BiddingKG.dl.common.Utils import *
- def getTextCNNModel(shape=(100,60),out_len=6):
- input_left = layers.Input(shape=shape)
- input_center = layers.Input(shape=shape)
- input_right = layers.Input(shape=shape)
-
- list_kernel = [5,10,15]
- out_left = []
- out_center = []
- out_right = []
-
- for kernel in list_kernel:
- out_left.append(layers.Conv1D(10, kernel, activation="relu",padding='same')(input_left))
- concat_left = layers.merge(out_left,mode="concat")
-
- for kernel in list_kernel:
- out_center.append(layers.Conv1D(4,kernel,activation="relu",padding="same")(input_center))
- concat_center = layers.merge(out_center,mode="concat")
-
- for kernel in list_kernel:
- out_right.append(layers.Conv1D(10,kernel,activation="relu",padding="same")(input_right))
- concat_right = layers.merge(out_right,mode="concat")
-
- matrix_left = layers.Dense(12,activation="relu")(concat_left)
- matrix_center = layers.Dense(12,activation="relu")(concat_center)
- matrix_right = layers.Dense(12,activation="relu")(concat_right)
-
- concat_matrix = layers.merge([matrix_left,matrix_center,matrix_right],mode="ave")
-
- flattern = layers.Flatten()(concat_matrix)
-
- out = layers.Dense(out_len,activation="softmax")(flattern)
-
- model = models.Model([input_left,input_center,input_right],out)
-
- model.compile(optimizer=optimizers.Adadelta(), loss=losses.categorical_crossentropy, metrics=[precision,recall,f1_score])
- model.summary()
- return model
- if __name__=="__main__":
- getTextCNNModel()
|