TensorFlow

时间:2017-06-20 06:54:12

标签: tensorflow tensor

我最近开始学习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。我不明白的是为什么这个张量的形状,由该函数的输入参数(也称为"尺寸")给出,是{1, inputSize, inputSize, 3}。第二维和第三维是图像的宽度和高度,第四维是图像的RGB数据。但为什么它的第一个维度为1?不应该将此张量的形状改为{inputSize, inputSize, 3}吗?我想因为尺寸为1它没有任何区别,但我想这个符号必须有一个理由而且我不理解它。

1 个答案:

答案 0 :(得分:4)

Tensorflow适用于批量图像。 因此,模型接受一批图像,每个图像的形状为inputSize x inputSize x 3

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