コード例 #1
0
def FeedForward(
    inputs: str,
    outputs: str,
    units_inner: int,
    units_readout: int,
    dim: int,
    dropout_rate: float,
):
    """FeedForward Layer."""
    if inputs == "_x":
        raise ValueError(
            "Cannot use name '_x' for inputs (used as intermediary node).")

    return Sequential(
        Select(inputs=inputs, outputs="_x"),
        Dropout(inputs="_x", outputs="_x", dropout_rate=dropout_rate),
        Conv1d(inputs="_x",
               outputs="_x",
               filters=units_inner,
               kernel_size=1,
               activation=tf.nn.relu,
               use_bias=True),
        Dropout(inputs="_x", outputs="_x", dropout_rate=dropout_rate),
        Conv1d(inputs="_x",
               outputs="_x",
               filters=units_readout,
               kernel_size=1,
               activation=None,
               use_bias=True),
        Dropout(inputs="_x", outputs="_x", dropout_rate=dropout_rate),
        Dense(inputs="_x", outputs="_x", units=dim),
        Add(inputs=(inputs, "_x"), outputs=outputs),
    )
コード例 #2
0
def CombineEmbeddings(tensors, mode, output_dim, project=True):
    """Combine Embeddings Layers"""
    embedding = tf.concat(tensors, axis=-1)
    if project:
        embedding = Dense(units=output_dim)(embedding, mode=mode)
    return embedding