为什么在pytorch中设置`random.seed(42)`不会给我相同的结果?

时间:2019-06-29 10:59:59

标签: python numpy pytorch random-seed

我在主文件的开头设置了random和numpy.random的随机种子:

import random
import numpy as np
np.random.seed(42)
random.seed(42)
import torch

尽管如此,当我创建带有随机初始化参数的Net()对象时,每次都会得到完全不同的结果:

net=neuralnet.Net()
print ("initialized params: ", net.fc1.weight)

请注意,neuralnet.Net()在另一个文件中,并且是扩展torch.nn.Module的类。是torch.nn.Module随机初始化net.fc1.weight,而不是我自己的代码。

当我创建一个带有随机初始化参数的Net()对象时,每次都能得到完全不同的结果吗?

2 个答案:

答案 0 :(得分:0)

您是否看过:https://github.com/pytorch/pytorch/issues/7068

对于如何重现结果有一些建议。

示例:

    No entered by user: <input type ="text" (keyup)= 

    "ValueEntered($event.target.value)</td>

    <ng-template ngFor [ngForOf]="times(x)">

name:<input type="text" value=" ">

</ng-template>

<ng-template ngFor [ngForOf]="times(x-1)">

textbox:<input type="text" value=" ">   
</ng-template>

enter code here`

ValueEntered(event)
  {
      this.x=event;
  console.log('input value',event);
  }

function times(x) {
  return {
    [Symbol.iterator]: function* () {
      for (let i = 0; i < x; i++, yield) {
      }}

答案 1 :(得分:0)

尝试:

ipv6only

有关更多信息: https://pytorch.org/docs/stable/notes/randomness.html