def build_model_arc(self) -> None: config = self.hyper_parameters output_dim = self.label_processor.vocab_size embed_model = self.embedding.embed_model # 定义模型架构 self.tf_model = keras.Sequential([ embed_model, L.Bidirectional(L.LSTM(**config['layer_lstm1'])), L.Bidirectional(L.LSTM(**config['layer_lstm2'])), L.Dropout(**config['layer_dropout']), L.Dense(output_dim, **config['layer_output']), self._activation_layer() ])
def build_model_arc(self): """ build model architectural """ output_dim = len(self.processor.label2idx) config = self.hyper_parameters embed_model = self.embedding.embed_model layer_blstm = L.Bidirectional(L.LSTM(**config['layer_blstm']), name='layer_blstm') layer_dense = L.Dense(**config['layer_dense'], name='layer_dense') layer_crf_dense = L.Dense(output_dim, name='layer_crf_dense') layer_crf = CRF(output_dim, name='layer_crf') layer_dropout = L.Dropout(**config['layer_dropout'], name='layer_dropout') tensor = layer_blstm(embed_model.output) tensor = layer_dense(tensor) tensor = layer_dropout(tensor) tensor = layer_crf_dense(tensor) output_tensor = layer_crf(tensor) self.layer_crf = layer_crf self.tf_model = keras.Model(embed_model.inputs, output_tensor)
def build_model_arc(self): """ build model architectural """ output_dim = len(self.pre_processor.label2idx) config = self.hyper_parameters embed_model = self.embedding.embed_model layer_blstm = L.Bidirectional(L.LSTM(**config['layer_blstm']), name='layer_blstm') layer_self_attention = SeqSelfAttention(** config['layer_self_attention'], name='layer_self_attention') layer_dropout = L.Dropout(**config['layer_dropout'], name='layer_dropout') layer_time_distributed = L.TimeDistributed( L.Dense(output_dim, **config['layer_time_distributed']), name='layer_time_distributed') layer_activation = L.Activation(**config['layer_activation']) tensor = layer_blstm(embed_model.output) tensor = layer_self_attention(tensor) tensor = layer_dropout(tensor) tensor = layer_time_distributed(tensor) output_tensor = layer_activation(tensor) self.tf_model = keras.Model(embed_model.inputs, output_tensor)
def build_model_arc(self): """ build model architectural """ output_dim = len(self.pre_processor.label2idx) config = self.hyper_parameters embed_model = self.embedding.embed_model layer_blstm = L.Bidirectional(L.LSTM(**config['layer_blstm']), name='layer_blstm') layer_LSTMDecoder = LSTMDecoder(**config['layer_LSTMDecoder'], name='layer_LSTMDecoder') layer_dense = L.Dense(**config['layer_dense'], name='layer_dense') layer_decoder_dense = L.Dense(output_dim, name='layer_decoder_dense') softmax_layer = L.Activation(tf.nn.softmax, name="softmax_layer") tensor = layer_blstm(embed_model.output) tensor = layer_LSTMDecoder(tensor) tensor = layer_dense(tensor) tensor = layer_decoder_dense(tensor) output_tensor = softmax_layer(tensor) self.layer_LSTMDecoder = layer_LSTMDecoder self.tf_model = keras.Model(embed_model.inputs, output_tensor)
def build_model_arc(self): """ build model architectural """ output_dim = len(self.pre_processor.label2idx) config = self.hyper_parameters embed_model = self.embedding.embed_model layer_blstm = L.Bidirectional(L.LSTM(**config['layer_blstm']), name='layer_blstm') layer_dense = L.Dense(**config['layer_dense'], name='layer_dense') layer_crf_dense = L.Dense(output_dim, name='layer_crf_dense') layer_crf = CRF(output_dim, name='layer_crf') if isinstance(embed_model, keras.Model): first_layer_output = embed_model.output first_layer_input = embed_model.inputs else: first_layer_output = embed_model first_layer_input = embed_model tensor = layer_blstm(first_layer_output) tensor = layer_dense(tensor) tensor = layer_crf_dense(tensor) output_tensor = layer_crf(tensor) self.layer_crf = layer_crf self.tf_model = keras.Model(first_layer_input, output_tensor)
def build_model_arc(self): output_dim = self.processor.output_dim config = self.hyper_parameters embed_model = self.embedding.embed_model layer_bi_lstm = L.Bidirectional(L.LSTM(**config['layer_bi_lstm'])) layer_dense = L.Dense(output_dim, **config['layer_dense']) tensor = layer_bi_lstm(embed_model.output) output_tensor = layer_dense(tensor) self.tf_model = keras.Model(embed_model.inputs, output_tensor)
def build_model_arc(self): output_dim = len(self.processor.label2idx) config = self.hyper_parameters embed_model = self.embedding.embed_model # Define your layers layer_blstm1 = L.Bidirectional(L.LSTM(**config['layer_blstm1']), name='layer_blstm1') layer_blstm2 = L.Bidirectional(L.LSTM(**config['layer_blstm2']), name='layer_blstm2') layer_blstm3 = L.Bidirectional(L.LSTM(**config['layer_blstm3']), name='layer_blstm3') layer_dropout1 = L.Dropout(**config['layer_dropout1'], name='layer_dropout1') layer_dropout2 = L.Dropout(**config['layer_dropout2'], name='layer_dropout2') layer_dropout3 = L.Dropout(**config['layer_dropout3'], name='layer_dropout3') #layer_flatten = L.Flatten(**config['layer_flatten']) #layer_activation = L.Activation(**config['layer_activation']) layer_dense = L.Dense(output_dim, **config['layer_dense']) # Define tensor flow tensor = layer_dropout1(embed_model.output) tensor = layer_blstm1(tensor) tensor = layer_dropout2(tensor) tensor = layer_blstm2(tensor) #tensor = layer_dropout3(tensor) #tensor = layer_blstm3(tensor) output_tensor = layer_dense(tensor) # Init model self.tf_model = keras.Model(embed_model.inputs, output_tensor)
def build_model_arc(self) -> None: output_dim = self.label_processor.vocab_size config = self.hyper_parameters embed_model = self.embedding.embed_model crf = KConditionalRandomField() layer_stack = [ L.Bidirectional(L.LSTM(**config['layer_blstm1']), name='layer_blstm1'), L.Bidirectional(L.LSTM(**config['layer_blstm2']), name='layer_blstm2'), L.Dropout(**config['layer_dropout'], name='layer_dropout'), L.TimeDistributed( L.Dense(output_dim, **config['layer_time_distributed'])), crf ] tensor = embed_model.output for layer in layer_stack: tensor = layer(tensor) self.tf_model = keras.Model(embed_model.inputs, tensor) self.crf_layer = crf
def build_model_arc(self): output_dim = len(self.pre_processor.label2idx) config = self.hyper_parameters embed_model = self.embedding.embed_model layers_seq = [] layers_seq.append(L.Conv1D(**config['conv_layer'])) layers_seq.append(L.MaxPooling1D(**config['max_pool_layer'])) layers_seq.append(L.LSTM(**config['lstm_layer'])) layers_seq.append(L.Dense(output_dim, **config['activation_layer'])) tensor = embed_model.output for layer in layers_seq: tensor = layer(tensor) self.tf_model = tf.keras.Model(embed_model.inputs, tensor)
def build_model_arc(self) -> None: output_dim = self.label_processor.vocab_size config = self.hyper_parameters embed_model = self.embedding.embed_model # build model structure in sequent way layer_stack = [ L.Bidirectional(L.LSTM(**config['layer_bi_lstm'])), L.Dense(output_dim, **config['layer_output']), self._activation_layer() ] tensor = embed_model.output for layer in layer_stack: tensor = layer(tensor) self.tf_model: keras.Model = keras.Model(embed_model.inputs, tensor)
def build_model_arc(self) -> None: output_dim = self.label_processor.vocab_size config = self.hyper_parameters embed_model = self.embedding.embed_model layer_stack = [ L.Bidirectional(L.LSTM(**config['layer_blstm']), name='layer_blstm'), L.Dropout(**config['layer_dropout'], name='layer_dropout'), L.Dense(output_dim, **config['layer_time_distributed']), L.Activation(**config['layer_activation']) ] tensor = embed_model.output for layer in layer_stack: tensor = layer(tensor) self.tf_model = keras.Model(embed_model.inputs, tensor)
def build_model_arc(self): config = self.hyper_parameters embed_model = self.embedding.embed_model layer_bi_lstm = L.Bidirectional(L.LSTM(**config['layer_bi_lstm']), name='layer_bi_lstm') layer_output_1 = L.Dense(3, activation='sigmoid', name='layer_output_1') layer_output_2 = L.Dense(3, activation='sigmoid', name='layer_output_2') tensor = layer_bi_lstm(embed_model.output) output_tensor_1 = layer_output_1(tensor) output_tensor_2 = layer_output_2(tensor) self.tf_model = tf.keras.Model(embed_model.inputs, [output_tensor_1, output_tensor_2])