Tensorflow 尝试使用argmax预测标签时出现TypeError

Tensorflow 尝试使用argmax预测标签时出现TypeError,tensorflow,keras,Tensorflow,Keras,我已经成功地遵循迁移学习教程,用两门课“印象主义”和“现代主义”制作了自己的分类器 现在尝试为我的测试图像获取标签,应用线程的建议: 错误结果: "TypeError Traceback (most recent call last) <ipython-input-35-571175bcfc65> in <module>() 1 # create a list containing th

我已经成功地遵循迁移学习教程,用两门课“印象主义”和“现代主义”制作了自己的分类器

现在尝试为我的测试图像获取标签,应用线程的建议:

错误结果:

"TypeError                                 Traceback (most recent call last)
<ipython-input-35-571175bcfc65> in <module>()
      1 # create a list containing the class labels
      2 labels = ['modernism', 'impressionism']
----> 3 predicted_label = sorted(labels)[y_classes]

TypeError: only integer scalar arrays can be converted to a scalar index"
“类型错误回溯(最近一次调用最后一次)
在()
1#创建包含类标签的列表
2个标签=[“现代主义”、“印象主义”]
---->3预测的标签=已排序的(标签)[y\U类]
TypeError:只能将整数标量数组转换为标量索引“
我做错了什么?访问测试图像的文本标签(及其概率)的正确方法是什么?如果我理解数组预测,它已经从我的图像文件夹中识别出有两个类


如果你有时间帮忙,非常感谢

这里发生的是
y_prob.argmax(axis=-1)
返回的数组值为
[1]
。只有numpy阵列可以使用列表进行索引/拼接

这个问题是由于排序的
方法引起的,我在测试中没有考虑这个问题。即使输入数组是type
np.ndarray
,输出也会变成一个列表

因此,要么:

labels=[“现代主义”、“印象主义”]
expected_label=numpy.array(已排序(标签))[y_类]

labels=numpy.array(['现代主义','印象主义]]
labels.sort()
预测的\u标签=标签[y\u类]

感谢您的快速回答!我现在有了
labels=np.array(['modernism','impressionism'])预测的[u label=sorted(labels)[y\u classes]
,但奇怪的是,我得到了同样的错误。排序是基于Guillame的建议:“如果您有一个名为labels的标签列表,那么预测的标签名称将是:
predicted\u label=Sorted(labels)[y\u classes]
”就是这样!太谢谢你了,我一直在想这个。现在我得到这个输出
array(['modernism'],dtype='youcando
print(y_prob.max(axis=-1))
这将打印肯定类的信心。太好了,这非常有帮助!谢谢。你能显示
y_类的输出吗?当然,我刚刚编辑了原始帖子!如果有帮助,我可以粘贴整个代码。明白了,我已经更新了下面的答案,看一看!:D
"TypeError                                 Traceback (most recent call last)
<ipython-input-35-571175bcfc65> in <module>()
      1 # create a list containing the class labels
      2 labels = ['modernism', 'impressionism']
----> 3 predicted_label = sorted(labels)[y_classes]

TypeError: only integer scalar arrays can be converted to a scalar index"