かなり大きなプログラムがあり、さまざまなファイルでrandom
モジュールの関数を使用しています。プログラムが常に同じ結果を返すように、ランダムシードを一度に1か所で設定できるようにしたいと思います。 python
でも実現できますか?
メインのpythonモジュールは_import random
_を呼び出し、random.seed(n)
を呼び出す必要があります-これは他のrandom
のすべてのインポート間で共有されます。シードをリセットしません。
zss のコメントは、実際の回答として強調表示する必要があります。
人々が注意するべきもう一つのこと:numpy.randomを使用している場合、numpy.random.seed()を使用してシードを設定する必要があります。 random.seed()を使用しても、numpy.randomから生成された乱数のシードは設定されません。これはしばらく私を混乱させました。 -zss
アプリケーションの最初にrandom.seed(x)
を呼び出して、xが常に同じであることを確認します。これにより、アプリケーションの各実行中に擬似乱数のシーケンスが同じになることが保証されます。
ジョン・クレメンツは私の質問にほぼ答えています。しかし、実際の問題ではありませんでした。コードのランダム性の理由は、numpy.linalg SVDであったことが判明しました。
同じ問題がある場合は、コードで必ず確認してください!