【问题标题】:What layers should I use for Keras?我应该为 Keras 使用哪些层?
【发布时间】:2017-08-11 01:56:36
【问题描述】:

我正在 Keras 中构建一个示例项目。该项目旨在识别猫和狗之间的差异。我在网上找到了一个example,模型如下:

model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape=(3, 150, 150)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

我的问题是,人们如何知道要使用哪些层?何时使用 Conv2DConv1D 与另一层是否有指导或经验法则?

【问题讨论】:

    标签: machine-learning computer-vision deep-learning keras keras-layer


    【解决方案1】:

    简而言之 - 他们没有。提出良好的架构是当前深度学习研究的主要内容。有一些经验法则和直觉,但主要是 - 经验或应对据报道有效的现有规则。

    简而言之:

    • 当您在数据中具有空间和/或时间结构时使用卷积,例如图像、视频、声音等。
    • 池化与卷积具有相似的用例,它仍然需要空间和/或时间结构(除非它应用于整个通道/维度),并提供了一种去除“细节”(通常是噪声)和减少维度的方法信号
    • 当您的数据具有顺序字符时循环
    • 需要完全连接来“强制”给定维度(因此通常用作最后一层)或当一个人并不真正了解任何可以利用的结构时(因为它们几乎是最通用的)

    然而,如何组合、使用哪些超参数、使用多少是一个巨大的开放式研究问题,一开始最好的方法是复制别人的架构并获得一些经验/直觉,什么是有效的,什么是有效的不适用于您正在使用的数据。

    【讨论】:

    • 感谢您的经验法则。我知道这是一个非常广泛的问题,但这些指南对入门非常有帮助。池化层呢?如果你有任何其他的花絮,我敢打赌,有很多人会发现通过 Keras 学习机器学习非常有帮助。
    • 池化类似于用例中的卷积(添加到答案中)
    • 谢谢!这真的很有帮助。那里有很多东西,很难弄清楚我们从哪里开始以及这些概念是如何联系起来的。感谢您的帮助!
    • 如果这些功能有一个“悬崖笔记”版本,那就太棒了:核心层、卷积层、池化层、局部连接层、循环层、嵌入层、合并层、高级激活层、标准化层和噪声层。顺便说一句,喜欢你的网页。现在阅读。
    • @Alexis,我发现这个关于密集、卷积、全连接、池化、归一化层的解释很有用。您可以查看:forums.fast.ai/t/…
    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-21
    • 2011-11-21
    • 2010-11-26
    • 2018-06-21
    • 2020-04-29
    相关资源
    最近更新 更多