4

我最近开始学习 Tensorflow,特别想使用卷积神经网络进行图像分类。我一直在查看官方存储库中的 android 演示,特别是这个示例: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/android/src/org/tensorflow/demo/TensorFlowImageClassifier。爪哇

在第 145 行,它使用图像的输入数据创建一个张量,如下所示:

inferenceInterface.feed(inputName, floatValues, 1, inputSize, inputSize, 3);

现在,我一直在试图理解它在做什么,它最终调用了这个方法:Tensor.create。我不明白的是,为什么这个函数的输入参数(也称为“维度”)给出的这个张量的形状是{1, inputSize, inputSize, 3}. 第二维和第三维是图像的宽高,第四维是图像的RGB数据。但为什么它的第一个维度为 1?这个张量的形状不应该{inputSize, inputSize, 3}改为吗?我想因为维度是 1 它没有区别,但我想这个符号一定是有原因的,我不明白。

4

1 回答 1

5

TensorFlow 适用于批量图像。因此,该模型接受一批具有 shape 的图像inputSize x inputSize x 3

1批量大小。因此,在实践中,您正在向网络提供一批具有单个图像的图像,该图像是具有形状的张量1 x inputSize x inputSize x 3

于 2017-06-20T07:17:46.713 回答