コード例 #1
0
 def _prepare_model(self):
     base_model = self.embedding.model
     blstm_layer = Bidirectional(
         LSTM(**self.hyper_parameters['lstm_layer']))(base_model.output)
     dense_layer = Dense(128, activation='tanh')(blstm_layer)
     crf = CRF(len(self.label2idx), sparse_target=False)
     crf_layer = crf(dense_layer)
     self.model = Model(base_model.inputs, crf_layer)
コード例 #2
0
 def build_model(self):
     base_model = self.embedding.model
     blstm_layer = Bidirectional(LSTM(**self.hyper_parameters['lstm_layer']))(base_model.output)
     dense_layer = Dense(128, activation='tanh')(blstm_layer)
     crf = CRF(len(self.label2idx), sparse_target=False)
     crf_layer = crf(dense_layer)
     model = Model(base_model.inputs, crf_layer)
     model.compile(loss=crf_loss,
                   optimizer='adam',
                   metrics=[crf_accuracy])
     self.model = model
     self.model.summary()
コード例 #3
0
ファイル: DModel.py プロジェクト: bug000/C-C-K-S
 def _prepare_model(self):
     base_model = self.embedding.model
     emb = base_model.output
     emb = SpatialDropout1D(0.3)(emb)
     emb = TimestepDropout(0.1)(emb)
     blstm_out = Bidirectional(CuDNNLSTM(**self.hyper_parameters['lstm_layer']))(emb)
     blstm_out = BatchNormalization()(blstm_out)
     dense_ = Dense(512, activation='relu')(blstm_out)
     dense_ = SpatialDropout1D(0.5)(dense_)
     dense_ = TimestepDropout(0.2)(dense_)
     crf_out = CRF(len(self.label2idx), sparse_target=False)(dense_)
     self.model = Model(base_model.inputs, crf_out)
コード例 #4
0
    def create_custom_objects(model_info):
        custom_objects = {}
        loss = model_info.get('loss')
        if loss and loss['name'] == 'weighted_categorical_crossentropy':
            loss_f = helper.weighted_categorical_crossentropy(
                np.array(loss['weights']))
            custom_objects['loss'] = loss_f

        if loss and loss['name'] == 'crf':
            custom_objects['CRF'] = CRF
            custom_objects['crf_loss'] = crf_loss
            custom_objects['crf_viterbi_accuracy'] = CRF(128).accuracy

        return custom_objects
コード例 #5
0
    def create_custom_objects(model_info):
        custom_objects = {}
        loss = model_info.get('loss')
        if loss and loss['name'] == 'weighted_categorical_crossentropy':
            loss_f = helper.weighted_categorical_crossentropy(
                np.array(loss['weights']))
            custom_objects['loss'] = loss_f

        if loss and loss['name'] == 'crf':
            custom_objects['CRF'] = CRF
            custom_objects['crf_loss'] = crf_loss
            custom_objects['crf_viterbi_accuracy'] = CRF(128).accuracy

        embedding = model_info.get('embedding')

        if embedding and embedding['type'] == 'bert':
            custom_objects['NonMaskingLayer'] = helper.NonMaskingLayer
            custom_objects.update(get_bert_custom_objects())

        return custom_objects
コード例 #6
0
ファイル: DModel.py プロジェクト: bug000/C-C-K-S
 def _prepare_model(self):
     base_model = self.embedding.model
     emb = base_model.output
     emb = SpatialDropout1D(0.3)(emb)
     crf_out = CRF(len(self.label2idx), sparse_target=False)(emb)
     self.model = Model(base_model.inputs, crf_out)