【问题标题】:What is the type of CNN that is used in Keras for image classification?Keras 中用于图像分类的 CNN 类型是什么?
【发布时间】:2019-09-07 11:39:34
【问题描述】:

我有一个 CNN 架构,我训练它识别一些我最终需要实时使用的对象,然后使用检测到的对象的输出进行进一步的工作。我有两个关于此的问题需要回答,以评估我需要采取的下一步行动:

  1. 随着对CNN的研究越来越多,我发现有不同类型的CNN,比如faster CNN。所以我想知道 Keras 在使用它的 conv2d 函数时使用的是什么类型的架构(我将在下面提供我的 CNN 架构的代码)

  2. 生成的模型帮助我识别我正在寻找的对象是否在图像中,但我也在寻找图像中的预测区域。是否可以使用相同的架构,还是我需要使用 YOLO 之类的其他东西?


classifier = Sequential()

classifier.add(Conv2D(32, (3, 3), input_shape= (128, 128, 3), activation = 'relu' ))

classifier.add(MaxPooling2D(pool_size = (2, 2)))

classifier.add(Conv2D(64, (3, 3), activation = 'relu' ))
classifier.add(MaxPooling2D(pool_size = (2, 2)))

classifier.add(Conv2D(128, (3, 3), activation = 'relu' ))
classifier.add(MaxPooling2D(pool_size = (2, 2)))

classifier.add(Flatten())

classifier.add(Dense(units = 128, activation = 'relu'))
classifier.add(Dense(units = 1, activation = 'sigmoid'))

classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])

编辑:更具体地说,我想知道 tensorflow 或任何后端 keras 是否提供了基础 CNN,我们定义架构的方式是定义我们使用的 CNN 类型,例如区域 CNN,快速CNN 还是更快的 CNN?还是在不同级别定义的东西?

我希望我说清楚了。

【问题讨论】:

  • @ibrahim-bond 你得到这个问题的答案了吗?
  • @allaye 究竟是哪个问题?我认为以下答案令人满意。
  • 关于面具 rcnn?

标签: python tensorflow keras conv-neural-network faster-rcnn


【解决方案1】:

关于您的第一个问题:Keras “只是”一个通用 API,可用于不同的后端,即 TensorFlow、Theano 或 CNTK。

Keras 在layers.convolutional 中定义了多个不同的卷积层,它们都是documented here。由于您使用 TensorFlow 作为后端,您可以查看 backend.tensorflow_backend 以了解 Keras 使用了哪些 TensorFlow 层。

但是,请注意,R-CNN、Fast R-CNN 等不是特殊类型的卷积层,而是 CNN 架构(就像 YOLO 一样)。您可以在this blog post 中找到有关通用架构的更多信息。你可以找到 R-CNN 的 Keras 实现on GitHub

关于您的第二个问题:您的模型仅用作对象检测器。要识别对象放置在图像中的何处,您确实需要不同的架构。此外,您的训练数据将需要提供对象位置。

【讨论】:

  • 就我而言,我使用的是 tensorflow。我尝试了一个简单的谷歌搜索,但没有找到任何东西。你有什么想法或者我在哪里可以找到这样的信息?
猜你喜欢
  • 1970-01-01
  • 2021-11-18
  • 2019-09-22
  • 2020-10-21
  • 1970-01-01
  • 2021-01-31
  • 2020-03-06
  • 2020-09-03
  • 2020-02-21
相关资源
最近更新 更多