我试图在整个项目中设置相同的种子。以下是我在主文件中设置的参数,其中将导入所有其他模块 -seed = 42os.environ['PYTHONHASHSEED'] = str(seed)# Torch RNGtorch.manual_seed(seed)torch.cuda.manual_seed(seed)torch.cuda.manual_seed_all(seed)# Python RNGnp.random.seed(seed)random.seed(seed)我的项目目录如下所示 -├── Combined_Files_without_label5.csv├── __pycache__│ ├── dataset.cpython-37.pyc│ ├── datasets.cpython-37.pyc│ └── testing.cpython-37.pyc├── datasets.py├── import_packages│ ├── __init__.py│ ├── __pycache__│ │ ├── __init__.cpython-37.pyc│ │ ├── dataset.cpython-37.pyc│ │ ├── dataset_class.cpython-37.pyc│ │ ├── dataset_partition.cpython-37.pyc│ │ └── visualising.cpython-37.pyc│ ├── dataset_class.py│ ├── dataset_partition.py│ └── visualising.py├── main.py现在的问题是我正在从中导入模块,dataset_partition.py并且该函数需要seed那里的值。例如- df_train, df_temp, y_train, y_temp = train_test_split(X, y, stratify=y, test_size=(1.0 - frac_train), # noqa random_state=seed) 现在,我的问题是, 1)如果我只是从上述语句中删除参数,那么它会从我的主文件中获取种子吗?如果没有,那么如何设置呢? 2)所有其他需要种子的函数(例如 , )是否都会以相同的方式运行?(如果不是,那么如何解决它)random_statetorch.manual.seedtorch.cuda.manual_seed(seed)
1 回答
慕码人2483693
TA贡献1860条经验 获得超9个赞
1)如果我只是从上面的语句中删除 random_state 参数,那么它会从我的主文件中获取种子吗?
是的,正如默认 ( ) 值的文档None
所述:
使用 numpy.random 中的全局随机状态实例。多次调用该函数将重用同一个实例,并会产生不同的结果。
我想当您使用它时__init__
,它将在您使用包中的任何其他功能之前运行,并且没问题。
2)所有其他需要种子的函数(如 torch.manual.seed、torch.cuda.manual_seed(seed))是否会以相同的方式运行?
是的,这些将为 Python 和 PyTorch 设置全局种子以供使用,您在这里也可以。
添加回答
举报
0/150
提交
取消