如何在 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

代码验证测试如下:

相关推荐
z***56568 小时前
【玩转全栈】----Django模板语法、请求与响应
数据库·python·django
voidmort9 小时前
web3.py 简介:面向 Python 开发者的以太坊
开发语言·python·web3.py
后台开发者Ethan9 小时前
LangGraph 的持久化
python·langgraph
油炸小波9 小时前
02-AI应用开发平台Dify
人工智能·python·dify·coze
SunnyDays101110 小时前
从图片到PPT:用Python实现多图片格式(PNG/JPG/SVG)到幻灯片的批量转换
python·图片转ppt·png转ppt·jpg转ppt·svg转ppt·添加图片到ppt
CodeCraft Studio11 小时前
Excel处理控件Aspose.Cells教程:使用Python从Excel工作表中删除数据透视表
开发语言·python·excel·aspose·aspose.cells·数据透视表
普通网友11 小时前
用Python批量处理Excel和CSV文件
jvm·数据库·python
linuxxx11011 小时前
高考志愿填报辅助系统
redis·后端·python·mysql·ai·django·高考
THXW.11 小时前
【VScode卡在正在下载...】
ide·vscode·编辑器
无妄无望11 小时前
ragflow代码学习切片方式(1)docling_parser.py
人工智能·python·学习