deeppavlov/models/morpho_tagger/network.py
def _build_word_cnn(self, inputs):
        """Builds word-level network
        """
        inputs = kl.Lambda(kb.one_hot, arguments={"num_classes": self.symbols_number_},
                           output_shape=lambda x: tuple(x) + (self.symbols_number_,))(inputs)
        char_embeddings = kl.Dense(self.char_embeddings_size, use_bias=False)(inputs)
        conv_outputs = []
        self.char_output_dim_ = 0
        for window_size, filters_number in zip(self.char_window_size, self.char_filters):
            curr_output = char_embeddings
            curr_filters_number = (min(self.char_filter_multiple * window_size, 200)
                                   if filters_number is None else filters_number)
            for _ in range(self.char_conv_layers - 1):
                curr_output = kl.Conv2D(curr_filters_number, (1, window_size),
                                        padding="same", activation="relu",
                                        data_format="channels_last")(curr_output)
                if self.conv_dropout > 0.0:
                    curr_output = kl.Dropout(self.conv_dropout)(curr_output)
            curr_output = kl.Conv2D(curr_filters_number, (1, window_size),
                                    padding="same", activation="relu",
                                    data_format="channels_last")(curr_output)
            conv_outputs.append(curr_output)
            self.char_output_dim_ += curr_filters_number
        if len(conv_outputs) > 1:
            conv_output = kl.Concatenate(axis=-1)(conv_outputs)
        else:
            conv_output = conv_outputs[0]
        highway_input = kl.Lambda(kb.max, arguments={"axis": -2})(conv_output)
        if self.intermediate_dropout > 0.0:
            highway_input = kl.Dropout(self.intermediate_dropout)(highway_input)
        for i in range(self.char_highway_layers - 1):
            highway_input = Highway(activation="relu")(highway_input)
            if self.highway_dropout > 0.0:
                highway_input = kl.Dropout(self.highway_dropout)(highway_input)
        highway_output = Highway(activation="relu")(highway_input)
        return highway_output
def _build_word_cnn(self, inputs):
        inputs = kl.Lambda(kb.one_hot, arguments={"num_classes": self.symbols_number_},
                           output_shape=lambda x: tuple(x) + (self.symbols_number_,))(inputs)
        char_embeddings = kl.Dense(self.char_embeddings_size, use_bias=False)(inputs)
        conv_outputs = []
        self.char_output_dim_ = 0
        for window_size, filters_number in zip(self.char_window_size, self.char_filters):
            curr_output = char_embeddings
            curr_filters_number = (min(self.char_filter_multiple * window_size, 200)
                                   if filters_number is None else filters_number)
            for _ in range(self.char_conv_layers - 1):
                curr_output = kl.Conv2D(curr_filters_number, (1, window_size),
                                        padding="same", activation="relu",
                                        data_format="channels_last")(curr_output)
                if self.conv_dropout > 0.0:
                    curr_output = kl.Dropout(self.conv_dropout)(curr_output)
            curr_output = kl.Conv2D(curr_filters_number, (1, window_size),
                                    padding="same", activation="relu",
                                    data_format="channels_last")(curr_output)
            conv_outputs.append(curr_output)
            self.char_output_dim_ += curr_filters_number
        if len(conv_outputs) > 1:
            conv_output = kl.Concatenate(axis=-1)(conv_outputs)
        else:
            conv_output = conv_outputs[0]
        highway_input = kl.Lambda(kb.max, arguments={"axis": -2})(conv_output)
        if self.intermediate_dropout > 0.0:
            highway_input = kl.Dropout(self.intermediate_dropout)(highway_input)
        for i in range(self.char_highway_layers - 1):
            highway_input = Highway(activation="relu")(highway_input)
            if self.highway_dropout > 0.0:
                highway_input = kl.Dropout(self.highway_dropout)(highway_input)
        highway_output = Highway(activation="relu")(highway_input)
        return highway_output
def _build_word_cnn ( self , inputs ) : inputs = kl . Lambda ( kb . one_hot , arguments = { "num_classes" : self . symbols_number_ } , output_shape = lambda x : tuple ( x ) + ( self . symbols_number_ , ) ) ( inputs ) char_embeddings = kl . Dense ( self . char_embeddings_size , use_bias = False ) ( inputs ) conv_outputs = [ ] self . char_output_dim_ = 0 for window_size , filters_number in zip ( self . char_window_size , self . char_filters ) : curr_output = char_embeddings curr_filters_number = ( min ( self . char_filter_multiple * window_size , 200 ) if filters_number is None else filters_number ) for _ in range ( self . char_conv_layers - 1 ) : curr_output = kl . Conv2D ( curr_filters_number , ( 1 , window_size ) , padding = "same" , activation = "relu" , data_format = "channels_last" ) ( curr_output ) if self . conv_dropout > 0.0 : curr_output = kl . Dropout ( self . conv_dropout ) ( curr_output ) curr_output = kl . Conv2D ( curr_filters_number , ( 1 , window_size ) , padding = "same" , activation = "relu" , data_format = "channels_last" ) ( curr_output ) conv_outputs . append ( curr_output ) self . char_output_dim_ += curr_filters_number if len ( conv_outputs ) > 1 : conv_output = kl . Concatenate ( axis = - 1 ) ( conv_outputs ) else : conv_output = conv_outputs [ 0 ] highway_input = kl . Lambda ( kb . max , arguments = { "axis" : - 2 } ) ( conv_output ) if self . intermediate_dropout > 0.0 : highway_input = kl . Dropout ( self . intermediate_dropout ) ( highway_input ) for i in range ( self . char_highway_layers - 1 ) : highway_input = Highway ( activation = "relu" ) ( highway_input ) if self . highway_dropout > 0.0 : highway_input = kl . Dropout ( self . highway_dropout ) ( highway_input ) highway_output = Highway ( activation = "relu" ) ( highway_input ) return highway_output
Builds word-level network
Builds word - level network