了解卷积层中的nn.Sequential

时间:2020-06-19 10:43:13

标签: pytorch conv-neural-network

我是PyTorch /深度学习的新手,我试图了解如何使用以下行定义卷积层:

self.layer1 = nn.Sequential(nn.Conv1d(input_dim, n_conv_filters, kernel_size=7, padding=0), nn.ReLU(), nn.MaxPool1d(3))

我知道它正在为网络创建1d卷积层,最大池化宽度为3。但是,我不了解顺序模块或RelU的功能。这些在创建图层时如何发挥作用?

作为参考,其余代码可在此处找到:https://github.com/ArdalanM/nlp-benchmarks/blob/master/src/cnn/net.py

1 个答案:

答案 0 :(得分:0)

根据提供的描述,您似乎正在开发一个问题的卷积体系结构(更可能是计算机视觉,因为CNN通常是解决CV问题的目标)。

现在通过使用顺序模块来谈论代码,您正在告诉PyTorch您正在开发一种将以顺序方式工作的体系结构,并且通过指定ReLU,您在图片中引入了非线性的概念(ReLU是一个深度学习框架中广泛使用的激活功能)。非线性有助于CNN扩展到复杂的决策边界,并最终帮助CNN表现更好。

PS:我建议您回顾https://towardsdatascience.com/convolutional-neural-network-for-image-classification-with-implementation-on-python-using-pytorch-7b88342c9ca9,以便从编码人员的角度获得更好的主意。