【问题标题】:Understanding nn.Sequential in convolutional layers了解卷积层中的 nn.Sequential
【发布时间】:2020-10-09 14:29:03
【问题描述】:

我是 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

【问题讨论】:

    标签: pytorch conv-neural-network


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回答,该链接非常有帮助。但是,我见过不使用 nn.Sequential 每个卷积层的网络。 CNN 不能是连续的吗?我认为必须有顺序处理的层顺序。
    • 我坚信,CNN 本质上总是连续的,并且必须有一个网络内部层如何处理数据的顺序。网络的训练基于高度依赖于层顺序的反向传播的概念。我请求请添加指向您有疑问的示例的链接。
    • @SecProt 您的模型/模块的工作方式在 forward 方法中定义。碰巧 nn.Sequential 的 forward 基本上是以预定义的顺序调用其每个模块的 forward;在你的情况下 Conv1d -> ReLU -> MaxPooling。
    【解决方案2】:

    这是创建模型的常用方法,只需使用顺序类 u 即可创建层的线性堆栈。您还可以使用函数式 API 来创建完全任意的架构。

    顺序模型,

        model = models.Sequential()
        model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
        model.add(layers.MaxPooling2D((2, 2)))
        model.add(layers.Conv2D(64, (3, 3), activation='relu'))
        model.add(layers.MaxPooling2D((2, 2)))
        model.add(layers.Conv2D(64, (3, 3), activation='relu'))
    

    函数式 API,

    input_tensor = layers.Input(shape=(784,))
    x = layers.Dense(32, activation='relu')(input_tensor)
    output_tensor = layers.Dense(10, activation='softmax')(x)
    model = models.Model(inputs=input_tensor, outputs=output_tensor)
    

    【讨论】:

      猜你喜欢
      • 2018-02-10
      • 2021-04-09
      • 1970-01-01
      • 2018-08-20
      • 2019-07-21
      • 2018-06-25
      • 2013-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多