1
numpy.randomは、両方のマシンで同じpythonとnumpyのバージョンが同じであると仮定して、異なるアーキテクチャで同じ乱数を与えますか?Pythonでマシンに依存しない乱数を生成する
広範囲のpython /ライブラリバージョンでマシンに依存しない良いオプションはありますか?
numpy.randomは、両方のマシンで同じpythonとnumpyのバージョンが同じであると仮定して、異なるアーキテクチャで同じ乱数を与えますか?Pythonでマシンに依存しない乱数を生成する
広範囲のpython /ライブラリバージョンでマシンに依存しない良いオプションはありますか?
はい。
同じパラメータを使用して 「RandomState」メソッドへの適合性の保証A固定種子や通話の固定シリーズは、常に値が 間違っていたときを除き、丸め誤差まで 同じ結果を生成します:NumPy docsから。不正確な値が修正され、修正が行われた のNumPyのバージョンは、関連するドキュメント文字列に記録されます。 以前の動作が変更されない限り、既存のパラメータ範囲の拡張および新しい パラメータの追加が許可されます。
「常に」とは「異なるマシン間で」または「同じマシン上で異なる実行中」を意味するのかどうかは不明です。私はマシン間でそのような保証が可能であると懐疑的です。一部のアルゴリズムでは、拒否メソッドを使用して浮動小数点比較を行って、いつ受け入れるかを決定します。ランダムシーケンスから消費される値の数は、プラットフォームのlibmの詳細に依存します。例については、次のコードを参照してください:https://github.com/numpy/numpy/blob/b94c2b01ff7ef5b8dc44726512cfa232e9054882/numpy/random/mtrand/distributions.c#L720-L742 –
私は、これを明確にするためにバグレポートを開きました:https://github.com/numpy/numpy/issues/8771 –
私は具体的には異なるマシンを意味します。もともと、私は別のマシンで異なる答えを得ていたので尋ねましたが、np.randomを同じ回数呼び出すわけではありませんでした。私が今すると、私は2台のマシンで同じ乱数を取得します。これがいくつかのアーキテクチャでは当てはまらない場合、私は非常に興味があります... – Dan