2017-12-18 47 views
1

我想使用Tensorflow的估計器來簡化使用LSTM Networks的培訓。顯然,使用tensorflow的估算,必須定義模型功能,像這樣:使用LensMs的Tensorflow估計器接受圖像

def some_model_fn(features, labels, mode): 
    ... 

我使用佔位符來獲得的輸入和標籤都沒有問題。如何將圖像轉換爲tensorflow lstms接受的形狀,即[batch_size,num_time_steps,num_features]?

+0

除非您正在實現自己的圖層(如卷積/ lstm),否則在將圖像送入LSTM之前,您需要將圖像變平。你可以用'np.flatten()'來做到這一點。對於'num_time_steps',你需要給LSTM提供後續的圖像(如滾動窗口)。如果你沒有處理有助於預測下一個圖像的連續圖像,那麼你可能會更好地使用卷積網絡或者調整圖像平坦化策略(比如將像素的行或列送入LSTM中,等等)。 – umutto

+0

任務是手寫識別,我用垂直條形圖像進行輸入。我先閱讀圖像,然後轉置它來做到這一點。 –

回答

0

我建議使用numpy將圖像加載到多維數組。這確實需要相當多的內存,這取決於圖像大小和時間步數。

+0

我要問的是,我必須將圖像尺寸摺疊爲變暗,還是在讀取圖像時餵食圖像? –

+0

是的,你必須調整它們。您可以使用cv2.resize或scipy.misc.imresize調整圖像大小。如果您的網絡功能作爲一維矢量輸入,則可以在調整大小後平鋪圖像。 – Totoro