表題の通りなのですが、下記画像で種々のシードを固定する関数を作成し、その関数をimportして別ファイルで実行してもランダムシードが固定されません。
numpy.random.randn()の結果が毎回異なってしまいます。
このシード固定コードを逐一書くのは苦痛なので、importして使いたいです。
①この目的を達成するにはどうしたらよいでしょうか。
追記
https://teratail.com/questions/15388
によると、一回しか固定されないみたいです。
PYTHONの組み込み関数でもNUMPYのRANDOM.RANDNでも同様で一回しか結果が固定されませんでした。例えば同一ファイルでNP.RANDOM.RANDINTを実行した後にnp.random.randn()を実行するとRANDMの時にはシード固定が解除されているので、これはかなり困ります。
少し質問の内容を変えて、疑似乱数生成器が毎回同じ値を出力するにはどのようにしたらよいでしょうか。おぼろげな記憶なのですが、少し前にデモを自分でやったときは毎回同じ乱数が生成されていた記憶があるので、不可能ではないと思います。
def set_seed()-> None: import os import random import numpy as np import torch SEED_VALUE = 1234 os.environ['PYTHONHASHSEED'] = str(SEED_VALUE) random.seed(SEED_VALUE) np.random.seed(SEED_VALUE) torch.manual_seed(SEED_VALUE) np.random.randn(10)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/11 05:18