ログドメインのfloatのスパース行列でいくつかの計算を行っているため、「空の」エントリは実際には-Infです(-FLT_MAXを使用)。現在、カスタムのスパース行列クラスを使用していますが、既成の代替品に交換したいと思っています。
これはC++です。私の傾向は、EigenとBoostuBlasの圧縮された列マトリックスを調べることでした。ただし、どちらも「ゼロ」のカスタム値をサポートしていることは明らかではありません(おそらくテンプレートパラメータによって提供されます)。誰か提案がありますか?
明確化:
私が欲しいのはこれです:以前に「設定」されていないセル(i、j)については、mat [i、j]に-Inf ...を返してもらいたいので、これはおそらく「デフォルト」としてより適切に説明されます。スパース行列の「空の」エントリの値。
これを使用して、アンダーフローを回避するためにログドメインに保持された確率でHMM再帰(Viterbi、sum-product)を実行しています。
私は行列演算を行っていません...基本的に、動的計画法のタブローを埋めているだけです。行列のバンドのみを入力していて、メモリを効率的に使用したいので、スパース行列クラスを使用したいと思います。圧縮された帯行列は、行列を「順番に」入力しているので、良好なパフォーマンスが得られます。