pytorchニューラルネットワークCNNの初期化set_seed ()


最初のステップでは、シードの乱数を設定します.
ニューラルネットワークでは、パラメータのデフォルトはランダム初期化されます.異なる初期化パラメータは往々にして異なる結果をもたらし,比較的良い結果が得られた場合,pytorchでは乱数シードを設定することでこの目的を達成できることを通常望んでいる.
def set_seed(seed):
    torch.manual_seed(seed)  # cpu  CPU           ,         
    torch.cuda.manual_seed(seed)  # gpu    GPU      
    torch.backends.cudnn.deterministic = True  # cudnn
    np.random.seed(seed)  # numpy
    random.seed(seed)  # random and transforms


参考になるhttps://cloud.tencent.com/developer/article/1149041(書いてもいいと思います)
np.random.seed(1)seed()は、乱数生成時に使用されるアルゴリズムから始まる整数値を指定するために使用され、同じseed()値を使用すると、生成されるたびに乱数が同じになり、この値を設定しないと、システムは時間に応じて自分でこの値を選択し、そのたびに生成される乱数は時間の違いによって異なる.注意したいのはrandomseed(something)は一度だけ有効です.参考になるhttps://blog.csdn.net/linzch3/article/details/58220569