我正致力於分類簡歷中的多類分類問題。Pickled scipy稀疏矩陣作爲輸入數據?
我使用sklearn和它的TfIdfVectorizer來獲得一個大的scipy稀疏矩陣,它在酸洗後喂入Tensorflow模型。在我的本地機器上,我加載它,將一個小批量轉換爲密集的numpy數組並填充一個饋送詞典。一切都很好。
現在我想在ML雲上做同樣的事情。我的泡菜保存在gs://my-bucket/path/to/pickle
,但是當我運行我的教練時,無法在此URI(IOError: [Errno 2] No such file or directory
)處找到泡菜文件。我正在使用pickle.load(open('gs://my-bucket/path/to/pickle), 'rb')
來提取我的數據。我懷疑這不是在GCS上打開文件的好方法,但我對Google Cloud完全不熟悉,並且找不到正確的方法。
此外,我讀了一個必須使用TFRecords或CSV格式的輸入數據,但我不明白爲什麼我的方法無法正常工作。不包括CSV,因爲矩陣的密集表示將太大而不適合內存。 TFRecords可以像這樣有效地編碼稀疏數據嗎?是否有可能從一個pickle文件讀取數據?
感謝您的詳細解答,儘快嘗試您的解決方案!我調查了TFRecords,但我不確定如何將其用於稀疏數據。我明白對於像mnist這樣的密集數組,您可以將784維數組編碼爲每個示例的一個特徵。我想對於稀疏數據,我需要單獨編碼每個功能,並在數據丟失時設置默認值(0)。我對嗎? –
有多種方法可以對稀疏數據進行編碼。你想要編碼什麼? – rhaertel80