TensorFlow 标签号与轴上的形状不匹配
Posted
技术标签:
【中文标题】TensorFlow 标签号与轴上的形状不匹配【英文标题】:TensorFlow label number is a mismatch with the shape on the axis 【发布时间】:2020-05-18 02:00:03 【问题描述】:尝试运行代码实验室: https://codelabs.developers.google.com/codelabs/recognize-flowers-with-tensorflow-on-android/#6
我已经开发了自己的文件和列表文件,尽管当我开始通过 Android 运行它时似乎遇到了这个错误:
java.lang.IllegalArgumentException: Label number 6 mismatch the shape on axis 1
然后它将我链接到这部分代码:
Map<String, Float> labeledProbability =
new TensorLabel(labels, probabilityProcessor.process(outputProbabilityBuffer))
.getMapWithFloatValue();
Trace.endSection();
这是在分类结果部分
public List<Recognition> recognizeImage(final Bitmap bitmap, int sensorOrientation)
// Logs this method so that it can be analyzed with systrace.
Trace.beginSection("recognizeImage");
Trace.beginSection("loadImage");
long startTimeForLoadImage = SystemClock.uptimeMillis();
inputImageBuffer = loadImage(bitmap, sensorOrientation);
long endTimeForLoadImage = SystemClock.uptimeMillis();
Trace.endSection();
LOGGER.v("Timecost to load the image: " + (endTimeForLoadImage - startTimeForLoadImage));
// Runs the inference call.
Trace.beginSection("runInference");
long startTimeForReference = SystemClock.uptimeMillis();
tflite.run(inputImageBuffer.getBuffer(), outputProbabilityBuffer.getBuffer().rewind());
long endTimeForReference = SystemClock.uptimeMillis();
Trace.endSection();
LOGGER.v("Timecost to run model inference: " + (endTimeForReference - startTimeForReference));
// Gets the map of label and probability.
Map<String, Float> labeledProbability =
new TensorLabel(labels, probabilityProcessor.process(outputProbabilityBuffer))
.getMapWithFloatValue();
Trace.endSection();
// Gets top-k results.
return getTopKProbability(labeledProbability);
不知道为什么这是有效的任何人都可以帮忙吗??
【问题讨论】:
【参考方案1】:抱歉迟到了。 您的 labels.txt 文件中可能有一些空行,或者您的 labels.txt 文件中可能有一些额外的标签。一定要检查一下。
【讨论】:
以上是关于TensorFlow 标签号与轴上的形状不匹配的主要内容,如果未能解决你的问题,请参考以下文章
TensorFlow ValueError:logits 和标签必须具有相同的形状 ((25, 1) vs (1, 1))