如何在 Jupyter Notebook 中直接设置全局随机种子的方法及易错地方、notebook和pycharm中设置随机种子的区别

结论:

在 Jupyter Notebook 中直接设置全局随机种子的方法是确保每个单独的代码块中都调用相同的 set_seed 函数。这是最简单且有效的方法。在每个代码块开头设置随机种子,确保代码在每次执行时具有相同的随机数生成顺序。

易错地方

jupyter-notebook中:

直接在代码块的其中一个运行set_seed(2024),以为就全局可用了,实际上是只在当前代码块生效 。而notebook中是由很多个代码块构成的,所以每个代码块如果存在随机生成或者划分数据的函数,都应该在开头执行一下下面这行代码:

复制代码
set_seed(2024)

pycharm中:

在这个py脚本中,执行一次上面这个函数应该是随机种子全局有效的,因为py脚本只有一个代码块,不能分块执行。

其中,set_seed()函数如下所示,可以放在文件代码块的第一个块,方便后面的每个块调用

python 复制代码
import numpy as np
import torch
import random

def set_seed(seed):
    random.seed(seed)
    np.random.seed(seed)
    torch.manual_seed(seed)
    if torch.cuda.is_available():
        torch.cuda.manual_seed(seed)
        torch.cuda.manual_seed_all(seed)
    torch.backends.cudnn.deterministic = True
    torch.backends.cudnn.benchmark = False

代码验证测试如下:

相关推荐
MC皮蛋侠客6 小时前
Ruff 完全指南:下一代 Python Linter 与 Formatter
python
happylifetree7 小时前
Python014-第二章13.数据容器-tuple案例
python
茉莉玫瑰花茶7 小时前
LangGraph 其他核心能力 [ 3 ]
python·ai
AI玫瑰助手7 小时前
Python函数:递归函数的定义与阶乘案例实现
开发语言·python·信息可视化
武子康7 小时前
调查研究-155 Open-LLM-VTuber 本地部署与互动实战指南
人工智能·python·深度学习·ai·数字人
北漂人Java7 小时前
Pycharm配置Miniconda教程
python·pycharm
CTA量化套保7 小时前
量化程序 while True 一直跑 CPU 很高:天勤降频与字段过滤
python·区块链
copyer_xyf8 小时前
Python 内存分析:从栈和堆理解对象引用
前端·后端·python
大蚂蚁2号8 小时前
深度剖析Python全局解释器锁(GIL):原理、瓶颈与终极破局方案
python
高洁018 小时前
打造行业知识图谱三步走
python·深度学习·数据挖掘·知识图谱