問題タブ [mathnet-numerics]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
f# - MathNet Numerics のメモリ不足例外
F# プロジェクトで MathNet.Numerics を使用していますが、その権限内にあるはずの行列を処理するときにメモリが不足します。
編集: 問題は間違いなく MathNet.Numerics ではありません。それが何であるかはまだわかりませんが、それは私がやっていることです.
MNIST マトリックスを作成する方法を次に示します。おそらく、ファイル ストリームを開いたままにしておくか、何かをしているのでしょうが、それがどうなるかわかりません。
これを使って、
爆発します。
それは彼らですか、それとも私ですか?http://yann.lecun.com/exdb/mnist/からファイルを取得しました。誰かがこれを試してみたいと思った場合に備えて。
編集 1: 原因は への呼び出しloadMnistImage
です。Gene Belitski の提案に従って、コードを実行しました
行の前後
列の前は大丈夫でした。行の後、同じメモリ不足の例外で爆発しました。私は、use
ステートメントがファイルを解放し、私は大丈夫だと思っていたでしょう (そして、これは大規模なファイルではありません)。しかし、私は何かが欠けているので、掘り続けます。もし誰かが何かを見たら、私に知らせてください.
EDIT 2:ファイルリーダーを次のように単純化すると、問題はなくなりました。リストの遅延評価が問題だったようです。
f# - Matrix から Generic.Matrix への math.net 変換
ここm2
に がありMatrix
ます。ただし、invm
とinvt
ですGeneric.Matrix<float>
。なぜこの変換?
c# - MathNET を使用した信頼区間
IEnumerable<double>
データサンプルがあります。信号/データの 90% 信頼区間を計算したいと考えています。MathNET ライブラリを自由に使用できますが、ライブラリを正しく操作する方法について混乱しています。私のデータを考えると、アイデアは、元の信号の信頼区間を含む 2 つの追加のデータ配列を返すことです
これは数学的には複雑ではありません。MathNET ライブラリで利用できる関数/メソッドを正しく使用する方法について混乱しています。
c# - SVD は MathNet.Numerics x86 に含まれていますか?
密行列の特異値分解を計算する必要がありますが、使用しているパッケージに含まれていないようです: MathNet.Numerics x86 v2.4.0.26
Nugetパッケージマネージャーからダウンロードしました。
この質問Svd recompositionを参照しています。
リンクされた回答に含まれる構文は次のとおりです。
MathNet.Numerics x86 ライブラリを使用して DenseMatrix の SVD を生成する簡単な例を探しています。
残念ながら、メソッドinverse()
は NaN を返すだけなので、特異値分解を使用して逆数を近似したいと考えています。
c# - リスト内のオブジェクトのプロパティで Math.NET 統計関数を使用する最良の方法
私は計算を高速に実行するための最良の方法を見つけようとしており、このような状況で人々が通常どのようなアプローチを取るかを知りたいと思っていました.
の平均と標準偏差を計算したいプロパティを持つオブジェクトのリストがあります。このMath.NETライブラリを使用すると、おそらくパフォーマンスが向上し、最適化されると思いました。
残念ながら、これらの関数の入力引数は配列です。平均と STD を計算する独自の関数を作成する唯一の解決策はありますか? hereのようなラムダ関数を使用するリストの拡張メソッドを作成できますか? それとも、オブジェクト プロパティの配列を返す関数を作成し、これらを Math.NET で使用する方がよいでしょうか。
おそらく、答えはリストのサイズなどに依存しますか?議論のために、リストに 50 個の要素があるとしましょう。私の懸念は純粋にパフォーマンスです。
c# - 結果を制約した最小二乗行列を解く
私はこうして長方形の行列を持っています:
1, 3, 2, 4, n..
4, 2, 1, 5, n..
n..
したがって、ベクトル:
1, 2, 5, 6, 7, n..
行列のすべての列の最小二乗方程式を解く必要がありますが、すべての答えが 0 より大きくなるように結果を制限したいと考えています。
Math.NET パッケージを追加して、
matrix.QR().Solve(...
おそらく、これを繰り返し解決する方法はいくつかありますが、Solve
メソッドに制約/条件を指定する方法はないようです。他にどの方法を使用すればよいかわかりません。
以下に部分的なコードを追加します。
f# - F# の math.net インストール
私はF#が初めてで、Ubuntu 13.04にmath.netをインストールしようとしています。次のページでは、パッケージ マネージャー コンソールを使用して Linux 64 にインストールすることを推奨しています。
https://www.nuget.org/packages/MathNet.Numerics.MKL.Linux-x64/
しかし、私の理解では、PMCはVSでのみ使用できるため、Windowsでのみ使用できるという事実に困惑しています。なにか提案を?それとも、このライブラリに依存するべきではなく、別のライブラリが標準になっているのでしょうか?