标签: activation-function

如何在Tensorflow中仅使用Python制作自定义激活功能?

假设您需要创建一个仅使用预定义的tensorflow构建块无法实现的激活功能,您可以做什么?

所以在Tensorflow中可以创建自己的激活功能.但它很复杂,你必须用C++编写它并重新编译整个tensorflow [1] [2].

有更简单的方法吗?

python neural-network deep-learning tensorflow activation-function

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

在LSTM中使用tanh的直觉是什么?

在LSTM网络(了解LSTM)中,为什么输入门和输出门使用tanh?这背后的直觉是什么?它只是一个非线性变换?如果是,我可以将两者都更改为另一个激活功能(例如ReLU)吗?

machine-learning deep-learning lstm recurrent-neural-network activation-function

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

神经网络中回归模型的输出层激活函数

这些天我一直在尝试使用神经网络.我遇到了一个关于要使用的激活功能的一般问题.这可能是一个众所周知的事实,但我无法理解.我见过的很多例子和论文都在研究分类问题,他们要么使用sigmoid(在二进制情况下)或softmax(在多类情况下)作为输出层中的激活函数,这是有道理的.但我还没有看到回归模型的输出层中使用的任何激活函数.

所以我的问题是,我们不会在回归模型的输出层中使用任何激活函数,因为我们不希望激活函数限制或限制值.输出值可以是任意数字,也可以是数千,因此像sigmoid到tanh的激活函数没有意义.或者还有其他原因吗?或者我们实际上可以使用一些针对这类问题的激活函数?

regression neural-network activation-function

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

为什么仅在输出层而不是在隐藏层中使用softmax?

我见过的用于分类任务的神经网络的大多数例子都使用softmax层作为输出激活函数.通常,其他隐藏单元使用sigmoid,tanh或ReLu函数作为激活函数.据我所知,在这里使用softmax函数也可以用数学方法计算出来.

  • 不使用softmax函数作为隐藏层激活函数的理论依据是什么?
  • 有没有关于此的出版物,引用什么?

classification machine-learning neural-network softmax activation-function

14
推荐指数
2
解决办法
8440
查看次数

具有线性激活的层和没有激活的层有什么区别?

我在玩 Keras 一点,我在想线性激活层和根本没有激活层之间有什么区别?它没有相同的行为吗?如果是这样,那么线性激活的意义何在?

我的意思是这两个代码片段之间的区别:

 model.add(Dense(1500))
 model.add(Activation('linear'))
 model.add(Dense(1500))
Run Code Online (Sandbox Code Playgroud)

 model.add(Dense(1500))
 model.add(Dense(1500))
Run Code Online (Sandbox Code Playgroud)

neural-network keras activation-function keras-layer

11
推荐指数
2
解决办法
6852
查看次数

为什么门控激活函数(在 Wavenet 中使用)比 ReLU 效果更好?

我最近一直在阅读 Wavenet 和 PixelCNN 的论文,在这两篇论文中,他们都提到使用门控激活函数比 ReLU 效果更好。但在这两种情况下,他们都解释了为什么会这样。

我曾在其他平台(如 r/machinelearning)上问过,但到目前为止我还没有得到任何答复。可能是他们只是(偶然)尝试了这个替代品,结果却产生了良好的结果?

参考函数: y = tanh(Wk,f ? x) 。?(Wk,g ? x)

卷积的 sigmoid 和 tanh 之间的元素乘法。

machine-learning neural-network deep-learning activation-function

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

Pytorch 自定义激活函数?

我在 Pytorch 中实现自定义激活函数时遇到问题,例如 Swish。我应该如何在 Pytorch 中实现和使用自定义激活函数?

python neural-network deep-learning activation-function pytorch

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

pytorch 是否在 nn.Linear 中自动应用 softmax

pytorch分类网络模型中定义为这样,

class Net(torch.nn.Module):
    def __init__(self, n_feature, n_hidden, n_output):
        super(Net, self).__init__()
        self.hidden = torch.nn.Linear(n_feature, n_hidden)   # hidden layer
        self.out = torch.nn.Linear(n_hidden, n_output)   # output layer

    def forward(self, x):
        x = F.relu(self.hidden(x))      # activation function for hidden layer
        x = self.out(x)
        return x
Run Code Online (Sandbox Code Playgroud)

这里应用了 softmax 吗?在我看来,事情应该是这样的,

class Net(torch.nn.Module):
    def __init__(self, n_feature, n_hidden, n_output):
        super(Net, self).__init__()
        self.hidden = torch.nn.Linear(n_feature, n_hidden)   # hidden layer
        self.relu =  torch.nn.ReLu(inplace=True)
        self.out = torch.nn.Linear(n_hidden, n_output)   # output layer
        self.softmax = torch.nn.Softmax(dim=n_output)
    def forward(self, x):
        x = …
Run Code Online (Sandbox Code Playgroud)

python deep-learning activation-function pytorch

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

PyTorch 中的“inplace=True”激活是否仅对推理模式有意义?

根据PyTorch论坛的讨论:

\n\n

的目的是就地inplace=True修改输入,而不用此操作的结果为附加张量分配内存。

\n

这允许更有效地使用内存,但禁止进行向后传递的可能性,至少在操作减少信息量的情况下是如此。并且反向传播算法需要保存中间激活才能更新权重。

\n

是否可以说,只有在模型已经训练好并且不想再修改它的情况下才应该分层启用此模式?

\n

python activation-function pytorch

8
推荐指数
1
解决办法
8620
查看次数

Keras如何在Relu激活功能中使用max_value

keras/activation.py中定义的Relu函数是:

    def relu(x, alpha=0., max_value=None):
      return K.relu(x, alpha=alpha, max_value=max_value)
Run Code Online (Sandbox Code Playgroud)

它有一个max_value,可用于剪切值.现在如何在代码中使用/调用它?我尝试了以下方法:(a)

    model.add(Dense(512,input_dim=1))
    model.add(Activation('relu',max_value=250))
    assert kwarg in allowed_kwargs, 'Keyword argument not understood: 
    ' + kwarg
    AssertionError: Keyword argument not understood: max_value
Run Code Online (Sandbox Code Playgroud)

(b)中

    Rel = Activation('relu',max_value=250)
Run Code Online (Sandbox Code Playgroud)

同样的错误

(C)

    from keras.layers import activations
    uu = activations.relu(??,max_value=250)
Run Code Online (Sandbox Code Playgroud)

这个问题是它希望输入存在于第一个值中.错误是'relu()需要至少1个参数(给定1个)'

那我怎么做这个图层呢?

    model.add(activations.relu(max_value=250))
Run Code Online (Sandbox Code Playgroud)

有同样的问题'relu()需要至少1个参数(给定1个)'

如果此文件不能用作图层,则似乎无法为Relu指定剪辑值.这意味着这里的评论https://github.com/fchollet/keras/issues/2119关闭提议的更改是错误的......有什么想法吗?谢谢!

keras tensorflow activation-function

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