PyTorch中的图层类型与其激活功能之间有什么区别?

时间:2019-05-13 17:55:42

标签: python neural-network pytorch activation-function

我正在尝试使用pytorch编写一些简单的神经网络。我是这个图书馆的新手。我面临着两种实现同一想法的方法:具有一些固定激活功能(例如tanh)的层。

第一种实现方式:

l1 = nn.Tanh(n_in, n_out)

第二种方式:

l2 = nn.Linear(n_in, n_out) # linear layer, that do nothing with its input except summation

但在正向传播中使用:

import torch.nn.functional as F
x = F.tanh(l2(x)) # x - value that propagates from layer to layer

这些机制之间有什么区别?哪个更适合哪个目的?

1 个答案:

答案 0 :(得分:2)

激活函数只是非线性函数,没有任何参数。因此,您的第一种方法没有任何意义!

但是,您可以使用sequential包装器将线性层与tanh激活组合在一起。

model = nn.Sequential(
    nn.Linear(n_in, n_out),
    nn.Tanh()
)
output = model(input)