我最近开始学习 Tensorflow,特别是我想使用卷积神经网络进行图像分类。我一直在看官方仓库中的android demo,特别是这个例子: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 它没有区别,但我想这个符号一定有原因,我不明白。
最佳答案
Tensorflow 适用于批量图像。
因此,该模型接受一批图像,每个图像的形状为 inputSize x inputSize x 3
.1
是批量大小。因此,在实践中,您正在向网络提供一批具有形状为 1 x inputSize x inputSize x 3
的张量的单个图像。
关于tensorflow - TensorFlow 中图像张量的形状是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44645849/