2015-11-25 62 views
4

有沒有人嘗試使用稀疏張量進行TensorFlow文本分析並取得成功?一切都準備就緒,我設法用feed_dicttf.Session提供一個Softmax圖層,使用numpy數組,但是我無法使用SparseTensorValues提供字典。使用稀疏張量爲TensorFlow中的softmax圖層提供佔位符

我還沒有發現任何關於使用稀疏矩陣來訓練模型張量流動,這是怪(SOFTMAX例如),如類SparseTensorSparseTensorValuesTensorFlow.sparse_to_dense方法文檔已經準備好了,但沒有文檔約如何填充session.run(fetches,feed_dict=None)方法中的feed_dict字典值。

非常感謝,

+1

我面臨同樣的問題並提出問題。你可以按照這個,但我認爲還沒有解決.. https://github.com/tensorflow/tensorflow/issues/342 Ebrevdo建議使用embedding_lookup_sparse做稀疏乘法。 我個人認爲tensorflow現在支持有限的稀疏操作.. –

回答

1

我發現把稀疏的圖像轉換成tensorflow包括批處理的方式,如果這是任何幫助。

我在尺寸爲batchSize,xLen,ylen,zLen(例如,zLen爲3)的字典中創建一個4-d稀疏矩陣。以下僞代碼是針對一批50個32x96像素的3色圖像。值是每個像素的強度。在下面的代碼片段顯示我正在初始化第一批的第一2個像素...

shape = [50, 32, 96, 3] 
indices = [[0, 20, 31, 0],[0, 22, 33, 1], etc...] 
values = [12, 24, etc...] 
batch = {"indices": indices, "values": values, "shape": shape} 

當設置的計算圖表創建正確的尺寸

images = tf.sparse_placeholder(tf.float32, shape=[None, 32, 96, 3]) 

'的稀疏佔位符無「,所以我可以改變批量大小。

當我第一次想要使用圖像時,例如將它們轉換回密集張量:

images = tf.sparse_tensor_to_dense(batch) 

然後,當我準備好運行會話時,例如,訓練,我通過批次的3個組件到字典,使他們由sparse_placeholder被拾起:

train_dict = {images: (batch['indices'], batch['values'], batch['shape']), etc...} 
sess.run(train_step, feed_dict=train_dict)     

如果你不需要做批處理剛剛離開過的第一個維度,並刪除「沒有'佔位符的形狀。

我找不到任何將批量圖像作爲稀疏矩陣數組傳遞的方式。它只有在我創建了第四維時才起作用。我很想知道替代品。

雖然這並沒有給你的問題一個確切的答案,但我希望它是有用的,因爲我一直在努力解決類似的問題。

相關問題