gpt4 book ai didi

python - 我的 CNN 输出层应该是什么样子?

转载 作者:行者123 更新时间:2023-11-30 08:59:49 25 4
gpt4 key购买 nike

我正在运行一个模型来检测图像中的一些有趣的特征。我有一组尺寸为 600x200 像素的图像。这些图像具有我想要识别的特征,例如岩石碎片。想象一下覆盖在图像上的 (4x12) 网格我可以使用注释器工具手动生成注释,例如 ((4,9), (3,10), (3,11), (3,12)) 识别图像中有趣的细胞。我可以使用 Keras 构建 CNN 模型,输入为灰度图像。但我应该如何对输出进行编码。对我来说直观的一种方法是将其视为形状 (12,4,1) 的稀疏矩阵,并且只有感兴趣的单元格具有 1,而其他单元格具有 0。

  • 有更好的方法对输出进行编码吗?
  • 最后一层的激活函数应该是什么?我使用 ReLU 作为隐藏层。
  • 损失函数应该是什么? mean_squared_error 有效吗?

最佳答案

您的问题与检测和分割问题非常相似(您可以阅读它,例如 here 。您提出的方法是合理的,因为在检测和分割任务中计算您提出的特征图是训练的常见部分管道。但是 - 您可能会遇到几个问题:

  • 内存问题:您需要处理稀疏张量或使用生成器来处理内存问题,
  • 损失和激活:Keras API 目前不支持分段的损失和激活,因此您需要自行实现。 Herehere您可以找到有关如何解决此问题的示例。

如果仅进行检测(而不是对这些点进行分类),我建议您使用sigmoidbinary_crossentropy。在分类softmaxcategorical_crossentropy的情况下。

当然 - 还有其他方法可以解决这个问题。人们可以将其作为回归来解决,您需要预测存在有趣内容的像素。但在 Keras 中处理不同的输入相当麻烦。

关于python - 我的 CNN 输出层应该是什么样子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44970142/

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