Keras用于图像分类的CNN是什么类型?

时间:2019-04-17 09:09:42

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

我有一个CNN体系结构,我对其进行了训练,以识别出一些最终需要实时使用的对象,然后将检测到的对象的输出用于进一步的工作。我有两个问题需要回答,以评估下一步需要做的事情:

  1. 随着我对CNN的深入研究,我发现有不同类型的CNN,例如更快的CNN。所以我想知道Keras在使用其conv2d函数时会使用哪种类型的架构(我将在下面为我的CNN架构提供代码)

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


$ (master) git checkout -b ticket-abc master

$ (ticket-abc) git push origin ticket-abc

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

我希望我能说清楚。

1 个答案:

答案 0 :(得分:2)

关于您的第一个问题:Keras是“公正”的通用API,可以与TensorFlow,Theano或CNTK的不同后端一起使用。

Keras在layers.convolutional中定义了许多不同的卷积层,所有这些都是documented here。由于您使用TensorFlow作为后端,因此可以查看backend.tensorflow_backend来找出Keras使用的TensorFlow层。

但是,请注意,R-CNN,快速R-CNN等不是卷积层的特殊类型,而是CNN体系结构(就像YOLO一样)。您可以在this blog post中找到有关常规体系结构的更多信息。您可以找到R-CNN on GitHub的Keras实现。

关于第二个问题:您的模型仅用作对象检测器。为了确定对象在图像中的位置,您确实需要一个不同的体系结构。另外,您的训练数据将需要提供对象的位置。