天天看點

【Tensorflow】讀取TFRecord檔案時,Image和Label無法一一對應問題原因解決

問題

Image

Label

資料成對寫入

TFRecord

檔案,按理訓練過程中讀取的

Image

Label

也應該是一一對應的,但有的時候發現

Image

Label

并不能比對。如:

将以下資料寫入

TFrecord

中:

Image 1 —— Label 1
Image 2 —— Label 2
Image 3 —— Label 3
           

讀取TFRecord時,資料發生錯位:

Image 1 —— Label 2
Image 2 —— Label 3
Image 3 —— Label 1
           

原因

以上不比對情形産生的原因之一是在讀取

TFRecord

時,擷取

Image

Label

的節點計算了兩次,而每一次新的讀取資料節點計算過程都會讀取下一組資料,也就是說兩次讀取資料的計算過程讓

Image

Label

發生了錯位,使得一張圖檔與下一張圖檔的

Label

對應了起來。

image = sess.run([image_features])
label = sess.run([label_features])
           

解決

想要讓

Image

Label

一一對應,隻要使用同一個計算節點得到

Image

Label

資料,換言之,隻

run

一次:

此時你會發現,新得到的圖檔和Label一一對應了:

Image 1 —— Label 1
Image 2 —— Label 2
Image 3 —— Label 3
           

繼續閱讀