pytorch中如何设置随机种子

 更新时间:2022年12月13日 11:03:50   作者:大虾飞哥哥  
这篇文章主要介绍了pytorch中如何设置随机种子,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

pytorch设置随机种子

pytorch设置随机种子 - 保证复现模型所有的训练过程

在使用 PyTorch 时,如果希望通过设置随机数种子,在 GPU 或 CPU 上固定每一次的训练结果,则需要在程序执行的开始处添加以下代码:

def seed_everything():
    '''
    设置整个开发环境的seed
    :param seed:
    :param device:
    :return:
    '''
    import os
    import random
    import numpy as np

    random.seed(seed)
    os.environ['PYTHONHASHSEED'] = str(seed)
    np.random.seed(seed)
    torch.manual_seed(seed)
    torch.cuda.manual_seed(seed)
    torch.cuda.manual_seed_all(seed)
    
    # some cudnn methods can be random even after fixing the seed
    # unless you tell it to be deterministic
    torch.backends.cudnn.deterministic = True

pytorch/tensorflow设置随机种子 ,保证结果复现

Pytorch随机种子设置

import numpy as np
import random
import os
import torch
def seed_torch(seed=2021):
    random.seed(seed)
    os.environ['PYTHONHASHSEED'] = str(seed)
    np.random.seed(seed)
    torch.manual_seed(seed)
    torch.cuda.manual_seed(seed)
    torch.cuda.manual_seed_all(seed) # if you are using multi-GPU.
    torch.backends.cudnn.benchmark = False
    torch.backends.cudnn.deterministic = True
    torch.backends.cudnn.enabled = False
seed_torch()

Tensorflow设置随机种子

第一步 仅导入设置种子和初始化种子值所需的那些库

import tensorflow as tf
import os
import numpy as np
import random

SEED = 0

第二步 为所有可能具有随机行为的库初始化种子的函数

def set_seeds(seed=SEED):
    os.environ['PYTHONHASHSEED'] = str(seed)
    random.seed(seed)
    tf.random.set_seed(seed)
    np.random.seed(seed)

第三步 激活 Tensorflow 确定性功能

def set_global_determinism(seed=SEED):
    set_seeds(seed=seed)

    os.environ['TF_DETERMINISTIC_OPS'] = '1'
    os.environ['TF_CUDNN_DETERMINISTIC'] = '1'
    
    tf.config.threading.set_inter_op_parallelism_threads(1)
    tf.config.threading.set_intra_op_parallelism_threads(1)

# Call the above function with seed value
set_global_determinism(seed=SEED)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python封装的类型与作用域的优势实例深究

    Python封装的类型与作用域的优势实例深究

    封装是面向对象编程中的核心概念,它能够帮助程序员隐藏类的内部细节,并限制对类成员的直接访问,本文将深入探讨Python中封装的机制,介绍封装的类型和优势,并提供详细的示例展示如何在Python中实现封装
    2023-12-12
  • 解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题

    解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题

    这篇文章主要介绍了解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 关于pip install uwsgi安装失败问题的解决方案

    关于pip install uwsgi安装失败问题的解决方案

    这篇文章主要介绍了关于pip install uwsgi安装失败问题的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Python+turtle绘制七夕表白玫瑰花

    Python+turtle绘制七夕表白玫瑰花

    七夕节,又称“七巧节”“女儿节”“乞巧节”等,是中国民间的传统节日。一年一度的七夕又快到了,用Python画一朵玫瑰花送给你的那个TA吧
    2022-08-08
  • python实战练习之最新男女颜值打分小系统

    python实战练习之最新男女颜值打分小系统

    前几天不是出过一期Python美颜相机嘛?不知道大家现在还记不记得?这一期的话题还是紧接着那一期颜值方面来走,对大家的学习或工作具有一定的价值,需要的朋友可以参考下
    2021-09-09
  • python3往mysql插入二进制图片出现1064错误

    python3往mysql插入二进制图片出现1064错误

    这篇文章主要介绍了python3往mysql插入二进制图片出现1064错误的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • python封装对象实现时间效果

    python封装对象实现时间效果

    这篇文章主要为大家详细介绍了python封装对象实现时间效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2010-10-10
  • 解决plt.imshow显示cv2.imread读取的图像有色差发蓝的四种方法问题

    解决plt.imshow显示cv2.imread读取的图像有色差发蓝的四种方法问题

    本文主要介绍了解决plt.imshow显示cv2.imread读取的图像有色差发蓝的四种方法问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • python爬取bilibili网页排名,视频,播放量,点赞量,链接等内容并存储csv文件中

    python爬取bilibili网页排名,视频,播放量,点赞量,链接等内容并存储csv文件中

    这篇文章主要介绍了python爬取bilibili网页排名,视频,播放量,点赞量,链接等内容并存储csv文件中,首先要了解html标签,标签有主有次,大致了解以一下,主标签是根标签,也是所有要爬取的标签的结合体,需要的朋友可以参考一下
    2022-01-01
  • Python中的布尔类型bool

    Python中的布尔类型bool

    这篇文章主要为大家介绍了Python中的布尔类型bool使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04

最新评论