标签: dropout

Keras:LSTM丢失与LSTM重复丢失之间的差异

从Keras文档:

dropout:浮点数介于0和1之间.为输入的线性变换而下降的单位的分数.

recurrent_dropout:浮点数在0和1之间.对于循环状态的线性变换,单位的分数下降.

任何人都可以指出每个辍学下面的图像在哪里发生?

在此输入图像描述

lstm keras dropout

52
推荐指数
2
解决办法
2万
查看次数

nn.Dropout vs. F.dropout pyTorch

通过使用pyTorch有两种方式滤除 torch.nn.Dropouttorch.nn.functional.Dropout.

我很难看到使用它们之间的区别
- 何时使用什么?
- 这有什么不同吗?
当我换掉它时,我没有看到任何性能差异.

neural-network deep-learning pytorch dropout

26
推荐指数
2
解决办法
2万
查看次数

如何理解SpatialDropout1D以及何时使用它?

偶尔我会看到一些模型正在使用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"))
Run Code Online (Sandbox Code Playgroud)

根据Keras的文件,它说:

此版本执行与Dropout相同的功能,但它会丢弃整个1D功能图而不是单个元素.

但是,我无法理解entrie 1D功能的含义.更具体地说,我无法SpatialDropout1Dquora中解释的相同模型中进行可视化.有人可以使用与quora相同的模型来解释这个概念吗?

另外,在什么情况下我们会用SpatialDropout1D而不是Dropout

machine-learning deep-learning conv-neural-network keras dropout

25
推荐指数
2
解决办法
6717
查看次数

美国有线电视新闻网的ReLu和Dropout

我正在研究卷积神经网络.我对CNN中的某些层感到困惑.

关于ReLu ......我只知道它是无限逻辑函数的总和,但是ReLu没有连接到任何上层.为什么我们需要ReLu,它是如何工作的?

关于辍学......辍学如何运作?我听了G. Hinton的视频讲话.他说,有一种策略可以在训练权重时随机忽略一半节点,并在预测时减半.他说,它的灵感来自随机森林,与计算这些随机训练模型的几何平均值完全相同.

这种策略与辍学一样吗?

有人可以帮我解决这个问题吗?

neural-network deep-learning dropout

16
推荐指数
1
解决办法
3万
查看次数

使用Dropout与Keras和LSTM/GRU单元

在Keras中,您可以像这样指定一个dropout图层:

model.add(Dropout(0.5))
Run Code Online (Sandbox Code Playgroud)

但是使用GRU单元格,您可以将dropout指定为构造函数中的参数:

model.add(GRU(units=512,
        return_sequences=True,
        dropout=0.5,
        input_shape=(None, features_size,)))
Run Code Online (Sandbox Code Playgroud)

有什么不同?一个比另一个好吗?

Keras的文档中, 它将其添加为单独的丢失层(请参阅"使用LSTM进行序列分类")

lstm keras dropout

10
推荐指数
1
解决办法
4024
查看次数

从头开始实施辍学

此代码尝试使用dropout的自定义实现:

%reset -f

import torch
import torch.nn as nn
# import torchvision
# import torchvision.transforms as transforms
import torch
import torch.nn as nn
import torch.utils.data as data_utils
import numpy as np
import matplotlib.pyplot as plt
import torch.nn.functional as F

num_epochs = 1000

number_samples = 10

from sklearn.datasets import make_moons
from matplotlib import pyplot
from pandas import DataFrame
# generate 2d classification dataset
X, y = make_moons(n_samples=number_samples, noise=0.1)
# scatter plot, dots colored by class value

x_data = [a for a …
Run Code Online (Sandbox Code Playgroud)

machine-learning deep-learning pytorch dropout

10
推荐指数
1
解决办法
1912
查看次数

Tensorflow LSTM Dropout实施

  • 如何明确并tensorflow申请退学调用tf.nn.rnn_cell.DropoutWrapper()的时候?

我读到的关于将退出应用于rnn的所有内容都参考了Zaremba等人的论文.al表示不在经常性连接之间应用辍学.应在LSTM层之前或之后随机丢弃神经元,而不是LSTM间层.好.

  • 我的问题是神经元是如何关闭时间的?

在每个人都引用的论文中,似乎在每个时间步长应用一个随机的"丢失掩码",而不是生成一个随机的"丢失掩码"并重新使用它,将它应用于丢弃的给定层中的所有时间步长.然后在下一批产生一个新的"辍学掩码".

此外,可能更重要的是,tensorflow是如何做到的?我已经检查了tensorflow api,并试图寻找详细的解释,但还没有找到一个.

  • 有没有办法深入研究实际的tensorflow源代码?

time-series lstm tensorflow dropout

9
推荐指数
1
解决办法
4987
查看次数

LSTM 之前或之后的 Dropout 层。有什么不同?

假设我们有一个用于时间序列预测的 LSTM 模型。此外,这是一种多变量情况,因此我们使用多个特征来训练模型。

ipt   = Input(shape = (shape[0], shape[1])
x     = Dropout(0.3)(ipt) ## Dropout before LSTM.
x     = CuDNNLSTM(10, return_sequences = False)(x)
out   = Dense(1, activation='relu')(x)
Run Code Online (Sandbox Code Playgroud)

我们可以Dropout在 LSTM 之前(如上面的代码)或 LSTM 之后添加层。

  • 如果我们在 LSTM 之前添加它,它是在时间步长(时间序列的不同滞后)或不同的输入特征上应用 dropout,还是两者兼而有之?

  • 如果我们在 LSTM 之后添加它并且因为return_sequencesis False,那么 dropout 在这里做什么?

  • dropoutoption inLSTM和 dropout layer before LSTMlayer有什么区别吗?

lstm keras tensorflow dropout

9
推荐指数
1
解决办法
4292
查看次数

哪些 PyTorch 模块受 model.eval() 和 model.train() 影响?

model.eval()方法修改了某些在训练和推理过程中需要表现不同的模块(层)。文档中列出了一些示例:

这仅对某些模块有影响。请参阅特定模块的文档,了解其在培训/评估模式下的行为详细信息(如果它们受到影响),例如DropoutBatchNorm等。

是否有受影响模块的详尽列表?

python machine-learning pytorch batch-normalization dropout

9
推荐指数
2
解决办法
5702
查看次数

PyTorch-如何在评估模式下停用辍学

这是我定义的模型,它是具有2个完全连接层的简单lstm。

import copy
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim

class mylstm(nn.Module):
    def __init__(self,input_dim, output_dim, hidden_dim,linear_dim):
        super(mylstm, self).__init__()
        self.hidden_dim=hidden_dim
        self.lstm=nn.LSTMCell(input_dim,self.hidden_dim)
        self.linear1=nn.Linear(hidden_dim,linear_dim)
        self.linear2=nn.Linear(linear_dim,output_dim)
    def forward(self, input):
        out,_=self.lstm(input)
        out=nn.Dropout(p=0.3)(out)
        out=self.linear1(out)
        out=nn.Dropout(p=0.3)(out)
        out=self.linear2(out)
        return out
Run Code Online (Sandbox Code Playgroud)

x_trainx_val是带有shape的float数据帧(4478,30),而y_trainy_val是带有shape的float df(4478,10)

    x_train.head()
Out[271]: 
       0       1       2       3    ...        26      27      28      29
0  1.6110  1.6100  1.6293  1.6370   ...    1.6870  1.6925  1.6950  1.6905
1  1.6100  1.6293  1.6370  1.6530   ...    1.6925  1.6950 …
Run Code Online (Sandbox Code Playgroud)

python deep-learning lstm pytorch dropout

7
推荐指数
1
解决办法
4388
查看次数