“ 让我们学会,如何在城市求生!”
TensorFlow 是如何运作的呢? 它的整个解决方案是基于张量进行的,张量是 TensorFlow 的原始单元。TensorFlow 使用一个张量数据结构来表示所有数据。
在数学中,张量是描述其他几何对象之间的线性关系的几何对象。在 TesnsorFlow 中,它们是多维数组或数据,比如矩阵。其实它并不像这样简单, 但这就是我现在想说的深入线性代数的整个张量的概念。
无论如何,我们可以把张量看作是 n 维阵列,对它使用矩阵运算是简单且有效的。例如,在下面的代码中,我们定义了两个常量张量,并将一个值添加到另一个上。
这就是整个张量概念在线性代数中,我们都知道,常量的值是不变的。而 TensorFlow 拥有丰富的 API,它的文档也很齐全,我们可以使用它定义其他类型的数据,比如变量。
除了张量之外,TensorFlow 还使用数据流图。图中的节点表示数学运算,边表示在它们之间通信的张量。
Google发布了新的TensorFlow物体检测API,包含了预训练模型,一个发布模型的jupyter notebook,一些可用于使用自己数据集对模型进行重新训练的有用脚本。
使用该API可以快速的构建一些图片中物体检测的应用。这里我们一步一步来看如何使用预训练模型来检测图像中的物体。
首先我们载入一些会使用的库:
接下来进行环境设置:
物体检测载入:
准备模型:
任何使用export_inference_graph.py工具输出的模型可以在这里载入,只需简单改变PATH_TO_CKPT指向一个新的.pb文件。这里我们使用“移动网SSD”模型。
下载模型:
载入标签图:
标签图将索引映射到类名称,当我们的卷积预测5时,我们知道它对应飞机。这里我们使用内置函数,但是任何返回将整数映射到恰当字符标签的字典都适用。
辅助代码:
实现检测:
在载入模型部分可以尝试不同的侦测模型以比较速度和准确度,将你想侦测的图片放入TEST_IMAGE_PATHS中运行即可。