我發現把稀疏的圖像轉換成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)
如果你不需要做批處理剛剛離開過的第一個維度,並刪除「沒有'佔位符的形狀。
我找不到任何將批量圖像作爲稀疏矩陣數組傳遞的方式。它只有在我創建了第四維時才起作用。我很想知道替代品。
雖然這並沒有給你的問題一個確切的答案,但我希望它是有用的,因爲我一直在努力解決類似的問題。
我面臨同樣的問題並提出問題。你可以按照這個,但我認爲還沒有解決.. https://github.com/tensorflow/tensorflow/issues/342 Ebrevdo建議使用embedding_lookup_sparse做稀疏乘法。 我個人認爲tensorflow現在支持有限的稀疏操作.. –