偶尔我会看到一些模型正在使用SpatialDropout1D
代替Dropout
。例如,在词性标记神经网络中,他们使用:
model = Sequential()
model.add(Embedding(s_vocabsize, EMBED_SIZE,
input_length=MAX_SEQLEN))
model.add(SpatialDropout1D(0.2)) ##This
model.add(GRU(HIDDEN_SIZE, dropout=0.2, recurrent_dropout=0.2))
model.add(RepeatVector(MAX_SEQLEN))
model.add(GRU(HIDDEN_SIZE, return_sequences=True))
model.add(TimeDistributed(Dense(t_vocabsize)))
model.add(Activation("softmax"))
根据 Keras 的文档,它说:
该版本执行与 Dropout 相同的功能,但它会丢弃
整个一维特征图而不是单个元素。
但是,我无法理解其含义输入一维特征。更具体地说,我无法想象SpatialDropout1D
在同一模型中解释quora https://www.quora.com/How-does-the-dropout-method-work-in-deep-learning-And-why-is-it-claimed-to-be-an-effective-trick-to-improve-your-network。
有人可以使用与 quora 中相同的模型来解释这个概念吗?
另外,我们在什么情况下会使用SpatialDropout1D
代替Dropout
?
为了简单起见,我首先要指出的是,所谓的特征图(1D、2D 等)是我们的常规通道。让我们看一下例子:
Dropout()
:我们定义 2D 输入:[[1, 1, 1], [2, 2, 2]]。 Dropout 将独立考虑每个元素,并可能导致类似 [[1, 0, 1], [0, 2, 2]] 的结果
SpatialDropout1D()
:在这种情况下,结果将类似于 [[1, 0, 1], [2, 0, 2]]。请注意,第二个元素已被归零all渠道。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)