Python 如何使用分类交叉熵的model.predict?
所以,我只是训练了我的模特 编辑(以下是我获得课程的方式) 在.txt文件中找到了标签Python 如何使用分类交叉熵的model.predict?,python,keras,Python,Keras,所以,我只是训练了我的模特 编辑(以下是我获得课程的方式) 在.txt文件中找到了标签 pred = model.predict(train_features)#[0]#np.array(set_one).reshape((-1,48,48,3)))# print(pred) result = [(classes[i], float(pred[i]) * 100.0) for i in range(len(pred))] result.sort(reverse=True, key=lambda
pred = model.predict(train_features)#[0]#np.array(set_one).reshape((-1,48,48,3)))#
print(pred)
result = [(classes[i], float(pred[i]) * 100.0) for i in range(len(pred))]
result.sort(reverse=True, key=lambda x: x[1])
for i in range(2):
(class_name, prob) = result[i]
print("Top %d ====================" % (i + 1))
print("Class name: %s" % (class_name))
print("Probability: %.2f%%" % (prob))
现在,当我使用预测时,我得到的结果是
[[[[0.0000000e+00 0.0000000e+00 0.0000000e+00 1.9776728e-02
4.9749532e-35 3.3859247e-21 5.2264658e-22 0.0000000e+00
0.0000000e+00 2.0263837e-21 1.3618594e-32 0.0000000e+00
4.4031281e-35 0.0000000e+00 0.0000000e+00 0.0000000e+00
6.0703663e-32 0.0000000e+00 6.8396845e-19 0.0000000e+00
4.3259302e-11 0.0000000e+00 1.1961731e-34 0.0000000e+00
2.8515963e-19 9.8022330e-01 0.0000000e+00]]]]
但是当我尝试将它与我的标签文件相乘时,我得到了一个错误
File "model_predict.py", line 42, in <module>
result = [(classes[i], float(pred[i]) * 100.0) for i in range(len(pred))]
File "model_predict.py", line 42, in <listcomp>
result = [(classes[i], float(pred[i]) * 100.0) for i in range(len(pred))]
TypeError: only size-1 arrays can be converted to Python scalars
文件“model_predict.py”,第42行,在
结果=[(类[i],浮点(pred[i])*100.0)表示范围内的i(len(pred))]
文件“model_predict.py”,第42行,在
结果=[(类[i],浮点(pred[i])*100.0)表示范围内的i(len(pred))]
TypeError:只有大小为1的数组才能转换为Python标量
这是因为pred
是一个具有形状(1,1,1,27)的numpy数组
为了迭代它并正确地使用它的项作为dict的键,您必须将它展平
尝试在result=[(类[i],float(pred[i])*100.0)之前添加这一行,以表示范围内的i(len(pred))]
因为在循环的第一次迭代时,我将是一个形状为(1,1,27)的数组,无法用于查找指令。这是因为pred
是一个形状为(1,1,1,27)的numpy数组
为了迭代它并正确地使用它的项作为dict的键,您必须将它展平
尝试在result=[(类[i],float(pred[i])*100.0)之前添加这一行,以表示范围内的i(len(pred))]
因为在循环的第一次迭代时,我将是一个形状为(1,1,27)的数组,无法用于查找指令。您能提供类吗?@NicolasGervais Done!你能提供课程吗?@NicolasGervais完成了!
File "model_predict.py", line 42, in <module>
result = [(classes[i], float(pred[i]) * 100.0) for i in range(len(pred))]
File "model_predict.py", line 42, in <listcomp>
result = [(classes[i], float(pred[i]) * 100.0) for i in range(len(pred))]
TypeError: only size-1 arrays can be converted to Python scalars
pred = list(pred.flatten())