Esempio n. 1
0
 def __init__(self,
              name: str,
              encoder: Attendable,
              dropout_keep_prob: float = 1.0,
              state_size: int = None,
              max_fertility: int = 5,
              reuse: ModelPart = None,
              save_checkpoint: str = None,
              load_checkpoint: str = None,
              initializers: InitializerSpecs = None) -> None:
     check_argument_types()
     Attention.__init__(self, name, encoder, dropout_keep_prob, state_size,
                        reuse, save_checkpoint, load_checkpoint,
                        initializers)
     self.max_fertility = max_fertility
Esempio n. 2
0
def build_attention(config: Dict,
                    encoder: RecurrentEncoder) -> Tuple[Attention, str]:
    attention = Attention(name=ATTENTION_NAME, encoder=encoder)

    attention_ini = ATTENTION_TEMPLATE.format(ATTENTION_NAME)

    return attention, attention_ini
Esempio n. 3
0
    def __init__(self,
                 name: str,
                 encoder: Union[TemporalStateful, SpatialStateful],
                 dropout_keep_prob: float = 1.0,
                 state_size: int = None,
                 max_fertility: int = 5,
                 save_checkpoint: str = None,
                 load_checkpoint: str = None) -> None:
        check_argument_types()
        Attention.__init__(self, name, encoder, dropout_keep_prob, state_size,
                           save_checkpoint, load_checkpoint)

        self.max_fertility = max_fertility

        self.coverage_weights = tf.get_variable("coverage_matrix",
                                                [1, 1, 1, self.state_size])
        self.fertility_weights = tf.get_variable(
            "fertility_matrix", [1, 1, self.context_vector_size])

        self.fertility = 1e-8 + self.max_fertility * tf.sigmoid(
            tf.reduce_sum(self.fertility_weights * self.attention_states, [2]))
Esempio n. 4
0
    def __init__(self,
                 name: str,
                 encoder: Attendable,
                 dropout_keep_prob: float = 1.0,
                 state_size: int = None,
                 max_fertility: int = 5,
                 reuse: ModelPart = None,
                 save_checkpoint: str = None,
                 load_checkpoint: str = None,
                 initializers: InitializerSpecs = None) -> None:
        check_argument_types()
        Attention.__init__(self, name, encoder, dropout_keep_prob, state_size,
                           reuse, save_checkpoint, load_checkpoint,
                           initializers)

        self.max_fertility = max_fertility

        self.coverage_weights = tf.get_variable("coverage_matrix",
                                                [1, 1, 1, self.state_size])
        self.fertility_weights = tf.get_variable(
            "fertility_matrix", [1, 1, self.context_vector_size])

        self.fertility = 1e-8 + self.max_fertility * tf.sigmoid(
            tf.reduce_sum(self.fertility_weights * self.attention_states, [2]))