首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么pytorch中模型的输出不同

为什么pytorch中模型的输出不同
EN

Stack Overflow用户
提问于 2021-08-23 02:31:32
回答 1查看 34关注 0票数 2

我有一个简单的模型,只有一个线性层。

代码语言:javascript
复制
model = torch.nn.Linear(1,1).to(device)
x_train1 = torch.FloatTensor([[1], [2], [3]])
out = model(x_train1)
print(out)

但是每当我尝试运行这段代码时,打印的输出都是不同的。

此外,我还设置了这些随机种子。

代码语言:javascript
复制
import random
import torch
import numpy as np
random_seed=76
torch.manual_seed(random_seed)
torch.cuda.manual_seed(random_seed)
torch.cuda.manual_seed_all(random_seed) # if use multi-GPU
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = False
np.random.seed(random_seed)
random.seed(random_seed)

我想知道为什么代码运行时输出一直在变化。

EN

回答 1

Stack Overflow用户

发布于 2021-08-23 14:37:34

如果想要获得相同的结果,则必须在每次运行代码时设置种子。

代码语言:javascript
复制
import torch

def my_func(device: str, seed: int):
    torch.manual_seed(seed)
    model = torch.nn.Linear(1,1).to(device)
    x_train1 = torch.FloatTensor([[1], [2], [3]])
    out = model(x_train1)
    print(out)

# Whenever you run the function you'll get the same result!

my_func(device="cpu", seed=76)
# tensor([[0.3573],
#         [0.5021],
#         [0.6470]], grad_fn=<AddmmBackward>)

my_func(device="cpu", seed=76)
# tensor([[0.3573],
#         [0.5021],
#         [0.6470]], grad_fn=<AddmmBackward>)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68886676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档