私の仕事は、特別に形成された密行列テンソルを疎行列テンソルに変換することです。例: 入力行列 M は次のとおりです (密な正の整数シーケンスの後に各行のパディングとして 0 が続きます)
[[3 5 7 0]
[2 2 0 0]
[1 3 9 0]]
さらに、各行の非パディング長が与えられると、たとえばテンソル L = によって与えられます
[3, 2, 3].
望ましい出力はスパース テンソル S です。
SparseTensorValue(indices=array([[0, 0],[0, 1],[0, 2],[1, 0],[1, 1],[2, 0],[2, 1], [2, 2]]), values=array([3, 5, 7, 2, 2, 1, 3, 9], dtype=int32), shape=array([3, 4]))
これは、オブジェクトが可変サイズの記述子によって記述されるモデルで役立ちます (S は、embedding_lookup_sparse で記述子の埋め込みを接続するために使用されます)。
M の行の数がわかっている場合は、それを行うことができます (Python ループとスライスや連結などの操作によって)。ただし、ここでの M の行番号はミニバッチ サイズによって決定され、変更される可能性があります (テスト フェーズなど)。それを実装する良い方法はありますか?いくつかの control_flow_ops を試していますが、成功していません。
ありがとう!!