gpt4 book ai didi

python - 在 keras 中定义模型(include_top = True)

转载 作者:太空狗 更新时间:2023-10-29 22:01:33 32 4
gpt4 key购买 nike

谁能告诉我在 keras 中定义模型时 include_top= True 是什么意思?

我在 Keras 文档中阅读了这一行的含义。它说 include_top:是否在网络的顶部包含全连接层。

我还在为这行代码寻找一个直观的解释。

ResNet50(include_top=True)

谢谢!

最佳答案

大多数这些模型都是一系列卷积层,后面跟着一个或几个密集(或全连接)层。

Include_top 让您选择是否需要最终的密集层。

  • 卷积层用作特征提取器。它们识别图像中的一系列图案,每一层都可以通过查看图案的图案来识别更精细的图案。

  • 密集层能够解释找到的模式以便进行分类:此图像包含猫、狗、汽车等。

关于权重:

  • 卷积层中的权重是固定大小的。它们是内核 x 过滤器的大小。示例:包含 10 个过滤器的 3x3 内核。卷积层不关心输入图像的大小。它只是进行卷积并根据输入图像的大小呈现结果图像。 (不清楚的可以搜索一些关于卷积的图解教程)

  • 现在,密集层中的权重完全取决于输入大小。它是输入的每个元素一个权重。因此,这要求您的输入始终具有相同的大小,否则您将无法获得适当的学习权重。

因此,删除最终的密集层允许您定义输入大小(请参阅文档)。 (并且输出大小将相应地增加/减少)。

但是你失去了解释/分类层。 (您可以添加自己的,具体取决于您的任务)


关于池化和扁平化的额外信息

全局池化:

在最后一个卷积层之后,您的输出仍然像图像。它们具有形状 (images, X, Y, channels),其中 XY 是二维图像的空间维度。

当您的模型具有 GlobalMaxPooling2DGlobalAveragePooling2D 时,它将消除空间维度。使用 Max 时,每个 channel 将只采用最高值像素。使用 Average 它将取每个 channel 的平均值。结果将只是 (images, channels),不再有空间维度。

  • 优点:由于空间维度被丢弃,您可以拥有可变大小的图像
  • 缺点:如果您的尺寸仍然很大,则会丢失大量数据。 (根据模型和数据,这可能没问题)

展平

使用flatten,空间维度不会丢失,但会在特征上进行变换。从 (images, X, Y, channels)(images, X*Y*channels)

这将需要固定的输入形状,因为必须定义 XY,并且如果在展平之后添加 Dense 层,则Dense 层需要固定数量的特征。

关于python - 在 keras 中定义模型(include_top = True),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46036522/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com