TensorFlow 中图像张量的形状是什么

What is the shape of an image tensor in TensorFlow

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

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

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

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

Tensorflow 处理成批图像。 因此,该模型接受一批图像,每个图像的形状为 inputSize x inputSize x 3.

1 是批量大小。因此,在实践中,您正在为网络提供一个批次,其中包含一个图像,该图像是一个形状为 1 x inputSize x inputSize x 3

的张量