You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch中如何固定种子拆分数据集以保证实验结果可复现?

MNIST数据集拆分代码验证说明

你的现有实现完全可以满足课程作业要求,核心逻辑没有问题:固定PyTorch随机种子后调用random_split按9:1比例拆分官方6万张MNIST训练集,相同环境下每次运行得到的训练、验证样本都是一致的,可复现性可以得到保证。

如果要覆盖更全面的使用场景、避免其他因素导致的随机差异,你可以补充几个边界处理的配置:

  • 如果你后续会在GPU环境运行代码,需要额外固定CUDA相关的随机配置,避免GPU运算引入的随机误差
  • 如果你代码其他部分用到了numpy的随机方法,也需要同步固定numpy的随机种子,避免跨库随机数干扰拆分结果

优化后的完整参考代码如下:

import torch
import numpy as np

# 全链路固定随机种子,保证完全可复现
torch.manual_seed(0)
np.random.seed(0)
# 适配GPU场景的随机固定配置
if torch.cuda.is_available():
    torch.cuda.manual_seed(0)
    torch.backends.cudnn.deterministic = True
    torch.backends.cudnn.benchmark = False

# 拆分MNIST训练集为54000张训练子集、6000张验证子集
mnist_train, mnist_val = torch.utils.data.random_split(mnist_rest, [54000, 6000])

内容的提问来源于stack exchange,提问作者Gamar Choba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 17:48:05