0
私はRichardson-Lucyデコンボリューションアルゴリズムで停止基準described in this paperを実装しようとしています。私のテスト画像は2.2 Mpxです。scipy Pythonでの疎行列の計算
im_deconv = [[]] # Image L channel as a 2D array
m = 2.2E6 # im_deconv.size
P_e_ortho = scipy.sparse.identity(m, dtype='int8') - \
1/m * np.ones((m, m), dtype='int8')
そこで、基本的
estimator = numpy.dot(P_e_ortho, im_deconv.flatten())
、P_e_ortho
は他の場所対角線上1 - 1/m
と- 1/m
を持っている:私は計算する必要があります。
このコードは、メモリエラー(4.8×1012セルが必要です)を返します。計算で正方行列全体を扱うのを避けるにはどうすればよいですか?
対角線を設定するには問題ありませんが、非対角要素を変更するにはどうすればよいですか?見つかっ
私は、これはあなたのメモリエラーを与えるものではありません驚いています。行列のすべての要素を非ゼロ値に設定しました。合計ストレージは対応する高密度アレイよりも大きくなりますが、いくつかのアレイに分割されます。 '.dot 'ももっと遅くなります。 – hpaulj
@hpauljはい、この問題ではうまくいかず、私はこのアプローチをあきらめました。この論文では、この技術の実装を小さな写真で示していますが、大きなものでは実現不可能です。私は代わりに正規化の要因に切り替えました。しかし、この解決策はまだまばらな行列を構築するのに有効です。 –