行列のほとんどの要素が0である時,その行列は疎 (Sparse) であるという.
ほとんどが0なのだから,値のあるとこだけ保持しておく,と言うのが疎行列 (Sparse Matrix) だ.
scipy.sparseには,csr_matrixとかが実装されていて,僕は普段それをよく使う.
今回TensorFlowを勉強していて疎行列を使いたくなったので調べてみた.
ただし,あまり資料がなかった.確かGithubのissueが一番参考になったと思う.
さて,tensorFlowにはtf.SparseTensorというのがあって,これで疎なテンソルを表現できる.
与える引数は,indices (何行何列)とvalues(そこの値)とshapeの3つ.
これらを↓みたいにplaceholderとして定義しておくといい感じ.
あとは使う時に,feed_dict内でそれぞれに値を入れてやる.これで疎行列の完成.いやあ,簡単だ.
indices, values, shapeの作り方は,↓みたいにすれば良い.
以上TensorFlowでの疎行列の作り方でした.