未验证 提交 87f9b583 编写于 作者: Q QI JUN 提交者: GitHub

set stop gradient for mask in dropout layer (#7390)

上级 59bf85d9
...@@ -14,7 +14,7 @@ __all__ = [ ...@@ -14,7 +14,7 @@ __all__ = [
'chunk_eval', 'sequence_conv', 'conv2d', 'sequence_pool', 'pool2d', 'chunk_eval', 'sequence_conv', 'conv2d', 'sequence_pool', 'pool2d',
'batch_norm', 'beam_search_decode', 'conv2d_transpose', 'sequence_expand', 'batch_norm', 'beam_search_decode', 'conv2d_transpose', 'sequence_expand',
'lstm_unit', 'reduce_sum', 'reduce_mean', 'reduce_max', 'reduce_min', 'lstm_unit', 'reduce_sum', 'reduce_mean', 'reduce_max', 'reduce_min',
'sequence_first_step', 'sequence_last_step' 'sequence_first_step', 'sequence_last_step', 'dropout'
] ]
...@@ -386,6 +386,21 @@ def cos_sim(X, Y, **kwargs): ...@@ -386,6 +386,21 @@ def cos_sim(X, Y, **kwargs):
return out return out
def dropout(x, dropout_prob, is_test=False, seed=0, **kwargs):
helper = LayerHelper('dropout', **kwargs)
out = helper.create_tmp_variable(dtype=x.dtype)
mask = helper.create_tmp_variable(dtype=x.dtype, stop_gradient=True)
helper.append_op(
type='dropout',
inputs={'X': [x]},
outputs={'Out': [out],
'Mask': [mask]},
attrs={'dropout_prob': dropout_prob,
'is_test': is_test,
'seed': seed})
return out
def cross_entropy(input, label, **kwargs): def cross_entropy(input, label, **kwargs):
""" """
**Cross Entropy Layer** **Cross Entropy Layer**
......
from ..registry import register_layer from ..registry import register_layer
__activations__ = [ __activations__ = [
'abs', 'abs', 'tanh', 'sigmoid', 'relu', 'sqrt', 'ceil', 'floor', 'log', 'round'
'ceil',
'exp',
'floor',
'log',
'relu',
'round',
'sigmoid',
'sqrt',
'square',
'tanh',
] ]
__all__ = [ __all__ = [
'mean', 'mean',
'mul', 'mul',
'dropout',
'reshape', 'reshape',
'scale', 'scale',
'transpose', 'transpose',
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册