如何知道Tensorflow实际“看到”了什么?

时间:2018-11-30 05:53:38

标签: tensorflow keras

我正在使用keras(tensorflow)构建的cnn进行视觉识别。 我想知道是否有办法知道我自己的张量流模型“看到”了什么。 谷歌有一条新闻显示AI大脑中有猫的脸。

https://www.smithsonianmag.com/innovation/one-step-closer-to-a-brain-79159265/

任何人都可以告诉我如何在自己的CNN网络中提取图像。 例如,我自己的cnn模型识别什么汽车?

2 个答案:

答案 0 :(得分:0)

在构建模型以进行视觉识别时,实际上是在这种情况下为其赋予了类似的标记数据或图片以使其能够识别,以便其可以根据训练数据来修改其权重。如果要构建可以识别汽车的模型,则必须对包含标签图片的大型火车数据进行训练。这种识别基本上是一种分类识别。

您可以尝试使用MNIST数据集,该数据集提供了用于识别图像的数字图片数据集。

答案 1 :(得分:0)

我们必须区分Tensorflow actually see

  

随着我们深入网络,功能图看起来不再像   原始图像,更像是它的抽象表示。当你   可以在block3_conv1中看到这只猫有些可见,但是之后   变得无法识别。原因是更深的特征图编码   高层次的概念,例如“猫鼻子”或“狗耳朵”,而较低层次的概念   特征图检测简单的边缘和形状。这就是为什么更深层次的功能   地图包含的图像信息较少,而包含的类更多   图片。它们仍然编码有用的功能,但是它们较少   在视觉上可以由我们解释。

what we can reconstruct是由于某种反向反卷积(实际上这不是真正的数学反卷积)过程的结果。

要回答您的真实问题,有很多很好的示例解决方案,您可以成功地研究它:Visualizing output of convolutional layer in tensorflow