|
|
|
@ -364,8 +364,7 @@ def dynamic_lstm(input,
|
|
|
|
|
cell_activation(str): The activation for cell output. Choices = ["sigmoid",
|
|
|
|
|
"tanh", "relu", "identity"], default "tanh".
|
|
|
|
|
candidate_activation(str): The activation for candidate hidden state.
|
|
|
|
|
Choices = ["sigmoid", "tanh",
|
|
|
|
|
"relu", "identity"],
|
|
|
|
|
Choices = ["sigmoid", "tanh", "relu", "identity"],
|
|
|
|
|
default "tanh".
|
|
|
|
|
dtype(str): Data type. Choices = ["float32", "float64"], default "float32".
|
|
|
|
|
name(str|None): A name for this layer(optional). If set None, the layer
|
|
|
|
@ -540,27 +539,31 @@ def dynamic_lstmp(input,
|
|
|
|
|
cell_activation(str): The activation for cell output. Choices = ["sigmoid",
|
|
|
|
|
"tanh", "relu", "identity"], default "tanh".
|
|
|
|
|
candidate_activation(str): The activation for candidate hidden state.
|
|
|
|
|
Choices = ["sigmoid", "tanh",
|
|
|
|
|
"relu", "identity"],
|
|
|
|
|
Choices = ["sigmoid", "tanh", "relu", "identity"],
|
|
|
|
|
default "tanh".
|
|
|
|
|
proj_activation(str): The activation for projection output.
|
|
|
|
|
Choices = ["sigmoid", "tanh",
|
|
|
|
|
"relu", "identity"],
|
|
|
|
|
Choices = ["sigmoid", "tanh", "relu", "identity"],
|
|
|
|
|
default "tanh".
|
|
|
|
|
dtype(str): Data type. Choices = ["float32", "float64"], default "float32".
|
|
|
|
|
name(str|None): A name for this layer(optional). If set None, the layer
|
|
|
|
|
will be named automatically.
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
tuple: The projection of hidden state, and cell state of LSTMP. The \
|
|
|
|
|
shape of projection is (T x P), for the cell state which is \
|
|
|
|
|
(T x D), and both LoD is the same with the `input`.
|
|
|
|
|
tuple: A tuple of two output variable: the projection of hidden state, \
|
|
|
|
|
and cell state of LSTMP. The shape of projection is (T x P), \
|
|
|
|
|
for the cell state which is (T x D), and both LoD is the same \
|
|
|
|
|
with the `input`.
|
|
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
|
|
|
|
|
.. code-block:: python
|
|
|
|
|
|
|
|
|
|
dict_dim, emb_dim = 128, 64
|
|
|
|
|
data = fluid.layers.data(name='sequence', shape=[1],
|
|
|
|
|
dtype='int32', lod_level=1)
|
|
|
|
|
emb = fluid.layers.embedding(input=data, size=[dict_dim, emb_dim])
|
|
|
|
|
hidden_dim, proj_dim = 512, 256
|
|
|
|
|
fc_out = fluid.layers.fc(input=input_seq, size=hidden_dim * 4,
|
|
|
|
|
fc_out = fluid.layers.fc(input=emb, size=hidden_dim * 4,
|
|
|
|
|
act=None, bias_attr=None)
|
|
|
|
|
proj_out, _ = fluid.layers.dynamic_lstmp(input=fc_out,
|
|
|
|
|
size=hidden_dim * 4,
|
|
|
|
@ -626,10 +629,10 @@ def dynamic_gru(input,
|
|
|
|
|
candidate_activation='tanh',
|
|
|
|
|
h_0=None):
|
|
|
|
|
"""
|
|
|
|
|
**Dynamic GRU Layer**
|
|
|
|
|
**Gated Recurrent Unit (GRU) Layer**
|
|
|
|
|
|
|
|
|
|
Refer to `Empirical Evaluation of Gated Recurrent Neural Networks on
|
|
|
|
|
Sequence Modeling <https://arxiv.org/abs/1412.3555>`_
|
|
|
|
|
Sequence Modeling <https://arxiv.org/abs/1412.3555>`_ .
|
|
|
|
|
|
|
|
|
|
The formula is as follows:
|
|
|
|
|
|
|
|
|
@ -676,17 +679,25 @@ def dynamic_gru(input,
|
|
|
|
|
Choices = ["sigmoid", "tanh", "relu", "identity"], default "sigmoid".
|
|
|
|
|
candidate_activation(str): The activation for candidate hidden state.
|
|
|
|
|
Choices = ["sigmoid", "tanh", "relu", "identity"], default "tanh".
|
|
|
|
|
h_0 (Variable): The hidden output of the first time step.
|
|
|
|
|
h_0 (Variable): This is initial hidden state. If not set, default is
|
|
|
|
|
zero. This is a tensor with shape (N x D), where N is the number of
|
|
|
|
|
total time steps of input mini-batch feature and D is the hidden
|
|
|
|
|
size.
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
Variable: The hidden state of GRU. The shape is :math:`(T \\times D)`, \
|
|
|
|
|
and lod is the same with the input.
|
|
|
|
|
and sequence length is the same with the input.
|
|
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
|
|
|
|
|
.. code-block:: python
|
|
|
|
|
|
|
|
|
|
dict_dim, emb_dim = 128, 64
|
|
|
|
|
data = fluid.layers.data(name='sequence', shape=[1],
|
|
|
|
|
dtype='int32', lod_level=1)
|
|
|
|
|
emb = fluid.layers.embedding(input=data, size=[dict_dim, emb_dim])
|
|
|
|
|
hidden_dim = 512
|
|
|
|
|
x = fluid.layers.fc(input=data, size=hidden_dim * 3)
|
|
|
|
|
x = fluid.layers.fc(input=emb, size=hidden_dim * 3)
|
|
|
|
|
hidden = fluid.layers.dynamic_gru(input=x, dim=hidden_dim)
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
@ -924,13 +935,13 @@ def dropout(x, dropout_prob, is_test=False, seed=None, name=None):
|
|
|
|
|
|
|
|
|
|
Drop or keep each element of `x` independently. Dropout is a regularization
|
|
|
|
|
technique for reducing overfitting by preventing neuron co-adaption during
|
|
|
|
|
training. The dropout operator randomly set (according to the given dropout
|
|
|
|
|
training. The dropout operator randomly sets (according to the given dropout
|
|
|
|
|
probability) the outputs of some units to zero, while others are remain
|
|
|
|
|
unchanged.
|
|
|
|
|
|
|
|
|
|
Args:
|
|
|
|
|
x (Variable): The input tensor.
|
|
|
|
|
dropout_prob (float): Probability of setting units to zero.
|
|
|
|
|
x (Variable): The input tensor variable.
|
|
|
|
|
dropout_prob (float): Probability of setting units to zero.
|
|
|
|
|
is_test (bool): A flag indicating whether it is in test phrase or not.
|
|
|
|
|
seed (int): A Python integer used to create random seeds. If this
|
|
|
|
|
parameter is set to None, a random seed is used.
|
|
|
|
@ -940,13 +951,14 @@ def dropout(x, dropout_prob, is_test=False, seed=None, name=None):
|
|
|
|
|
will be named automatically.
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
Variable: A tensor variable.
|
|
|
|
|
Variable: A tensor variable is the shape with `x`.
|
|
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
|
|
|
|
|
.. code-block:: python
|
|
|
|
|
|
|
|
|
|
x = fluid.layers.data(name="data", shape=[32, 32], dtype="float32")
|
|
|
|
|
droped = fluid.layers.dropout(input=x, dropout_rate=0.5)
|
|
|
|
|
x = fluid.layers.data(name="data", shape=[32, 32], dtype="float32")
|
|
|
|
|
droped = fluid.layers.dropout(x, dropout_prob=0.5)
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
helper = LayerHelper('dropout', **locals())
|
|
|
|
@ -2990,32 +3002,33 @@ def l2_normalize(x, axis, epsilon=1e-12, name=None):
|
|
|
|
|
norm. For a 1-D tensor (`dim` is fixed to 0), this layer computes
|
|
|
|
|
|
|
|
|
|
.. math::
|
|
|
|
|
y = \frac{x}{ \sqrt{\sum {x^2} + epsion }}
|
|
|
|
|
|
|
|
|
|
y = \\frac{x}{ \sqrt{\sum {x^2} + epsion }}
|
|
|
|
|
|
|
|
|
|
For `x` with more dimensions, this layer independently normalizes each 1-D
|
|
|
|
|
slice along dimension `axis`.
|
|
|
|
|
|
|
|
|
|
Args:
|
|
|
|
|
x(Variable|list): The input tensor to l2_normalize layer.
|
|
|
|
|
axis(int): The axis on which to apply normalization. If `axis < 0`,
|
|
|
|
|
axis(int): The axis on which to apply normalization. If `axis < 0`, \
|
|
|
|
|
the dimension to normalization is rank(X) + axis. -1 is the
|
|
|
|
|
last dimension.
|
|
|
|
|
epsilon(float): The epsilon value is used to avoid division by zero,
|
|
|
|
|
epsilon(float): The epsilon value is used to avoid division by zero, \
|
|
|
|
|
the defalut value is 1e-10.
|
|
|
|
|
name(str|None): A name for this layer(optional). If set None, the layer
|
|
|
|
|
name(str|None): A name for this layer(optional). If set None, the layer \
|
|
|
|
|
will be named automatically.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
Variable: The output tensor variable.
|
|
|
|
|
Variable: The output tensor variable is the same shape with `x`.
|
|
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
|
|
|
|
|
.. code-block:: python
|
|
|
|
|
|
|
|
|
|
data = fluid.layers.data(name="data",
|
|
|
|
|
shape=(3, 17, 13),
|
|
|
|
|
dtype="float32")
|
|
|
|
|
normed = fluid.layers.l2_normalize(x=data, axis=1)
|
|
|
|
|
data = fluid.layers.data(name="data",
|
|
|
|
|
shape=(3, 17, 13),
|
|
|
|
|
dtype="float32")
|
|
|
|
|
normed = fluid.layers.l2_normalize(x=data, axis=1)
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
if len(x.shape) == 1:
|
|
|
|
|