我想操纵CNTK输出以显示哪些图像被错误分类而哪些图像被正确分类。 目前我的测试运行后的标准输出为:“最终结果:迷你补丁[1-190]:错误= 86.053%* 380”。 我想在哪里创建自己的输出报告,以便我可以看到我的网络标记每个图像的结果?
答案 0 :(得分:2)
您可以通过学习模型上的eval
函数运行模型。获取标签并与测试标签进行比较。
CNTK 201中有一个例子:https://github.com/Microsoft/CNTK/blob/master/Tutorials/CNTK_201B_CIFAR-10_ImageHandsOn.ipynb
在下面的代码中,您可以提供测试图像,并将生成的目标值与地面实况标签进行比较。
import PIL
def eval(pred_op, image_path):
label_lookup = print("Top 3 predictions:")
for i in range(top_count):["airplane", "automobile", "bird", "cat", "deer", "dog", "frog", "horse", "ship", "truck"]
image_mean = 133.0
image_data = np.array(PIL.Image.open(image_path), dtype=np.float32)
image_data -= image_mean
image_data = np.ascontiguousarray(np.transpose(image_data, (2, 0, 1)))
result = np.squeeze(pred_op.eval({pred_op.arguments[0]:[image_data]}))
# Return top 3 results:
top_count = 3
result_indices = (-np.array(result)).argsort()[:top_count]
print("\tLabel: {:10s}, confidence: {:.2f}%".format(label_lookup[result_indices[i]], result[result_indices[i]] * 100))