Bir konvolüsyonel seyrek otomatik kodlayıcı oluşturuyorum ve 4D matrisini (şekli [samples, N, N, D]
olan) seyrek bir matrise dönüştürmem gerekiyor.Yoğun bir Tensorflow'dan Seyrek Matrix
Her örnek için, D NxN özellik haritalarına sahibim. Her NxN özellik haritasının, 1 ile eşleştirilebilen maksimum değeri ve diğerlerini 0'a dönüştürdüğü, çok az değeri olan bir matrise dönüştürmek istiyorum.
Çalışma zamanında bunu yapmak istemiyorum ama Grafik Bildirimi sırasında Ortaya çıkan seyrek matrisi diğer grafik işlemlerine bir girdi olarak kullanmak için), ancak seyrek matrisi oluşturmak için endeksleri nasıl alacağımı anlamıyorum.
Eğer Tensorflow içi veya bu dönüşümü yapmak ister misin piton? Python'da ise, bu işlev yoğundan kaba matrise dönüşüm yapmanıza yardımcı olabilir (http://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.coo_matrix.html#scipy.sparse.coo_matrix). Her özellik haritasını saklamak için tf.SparseTensor'u (coo formatını kullanır) kullanın ve tüm seyrek tensörleri saklamak için bir liste kullanın. –
Özellikle, nonzero() (http://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.coo_matrix.nonzero.html#scipy.sparse.coo_matrix.nonzero) size sıfır olmayanlar için bilgi verebilir elementler. Bunun çalışma zamanı yaklaşımı olarak kabul edilip edilmediğinden emin değil. Bu, grafik beyanından önce bazı veri ön işleme olabilir. Çalışma zamanında oluşturulan 4D yoğun matris mi yoksa sadece bazı verilen giriş verileri mi? –
Bunu çalışma zamanında (numpy ile nasıl yapılacağını biliyorum) yapmak istemiyorum, ancak grafik bildirimi sırasında (Tensorflow ile) – Cramer