其實enumerate()函數本身沒啥問題,通常使用方法如下:
然而我踩的坑是這樣的,最近項目中使用TensorFlow,生成TFRecord數據集,訓練完成後在測試集上測試,發現預期能分的好的類別分的不好,而預期分的糟糕的類別竟然precision很高。可是對於label對應我還是非常堅定的認爲不會出錯。
最終,還是好好檢查了一下生成數據集的代碼,沒想到測試下面的代碼時,竟然結果出乎意料:
竟然不是按順序輸出的!
我立刻發現,classes用的是set類型,而不是通常的list。如下圖,list肯定是按順序輸出的:
好在找到了原因,這裏記錄一下,以後別再出錯了。