相同的随机种子CPU和GPU上torch.nn.init.xavier_normal_结果并不一致

相同的随机种子CPU和GPU上torch.nn.init.xavier_normal_结果并不一致

  • 一.测试代码
  • 二.输出

在训练pytorch模型时,相同的随机种子,不同的服务器上loss并不一样,通过调试发现这二个平台的权值也不一样.单独测试torch.nn.init.xavier_normal_,发现也不一样.如果都放在CPU上则二台服务器上的结果一致,原来Megatron-DeepSpeed也有–use-cpu-initialization这样一个参数,采用CPU初始化权值

一.测试代码

cat > test_torch_rand.py <<-'EOF'
import torch
import numpy as np
import randomdef init_test(device):shape=(1,4)RANDOM_SEED = 42random.seed(RANDOM_SEED)np.random.seed(RANDOM_SEED)torch.manual_seed(RANDOM_SEED)if torch.cuda.is_available():torch.cuda.manual_seed_all(RANDOM_SEED)print(f"------------------------test torch init on {device}-------------------------------")weight = torch.rand(shape, dtype = torch.float16).to(device)print("torch.rand:",weight.detach().cpu().float().numpy())weight = torch.nn.Parameter(torch.empty(shape,device=device,dtype=torch.float16))torch.nn.init.xavier_normal_(weight)print("xavier_normal_:",weight.detach().cpu().float().numpy())weight = torch.nn.Parameter(torch.empty(shape,device=device,dtype=torch.float16))torch.nn.init.uniform_(weight, a=0.0, b=1.0)print("uniform_:",weight.detach().cpu().float().numpy())weight = torch.nn.Parameter(torch.empty(shape,device=device,dtype=torch.float16))torch.nn.init.normal_(weight)print("normal_:",weight.detach().cpu().float().numpy())weight = torch.nn.Parameter(torch.empty(shape,device=device,dtype=torch.float16))torch.nn.init.kaiming_uniform_(weight)print("kaiming_uniform_:",weight.detach().cpu().float().numpy())init_test("cpu")
if torch.cuda.is_available():init_test("cuda")
EOF
python3 test_torch_rand.py

二.输出

------------------------test torch init on cpu-------------------------------
torch.rand: [[0.5498047  0.71240234 0.41992188 0.63183594]]
xavier_normal_: [[ 0.14831543  0.14562988 -0.70996094 -0.11785889]]
uniform_: [[0.16113281 0.7236328  0.04248047 0.6816406 ]]
normal_: [[0.46166992 0.26733398 0.53466797 0.8095703 ]]
kaiming_uniform_: [[ 0.58740234  0.49389648 -0.2619629  -0.76416016]]
------------------------test torch init on cuda-------------------------------
torch.rand: [[0.5498047  0.71240234 0.41992188 0.63183594]]
xavier_normal_: [[ 0.12268066  1.3671875  -0.10882568  0.5371094 ]]
uniform_: [[0.98779297 0.12890625 0.5620117  0.52197266]]
normal_: [[-0.5185547  1.2265625  0.6254883 -0.9116211]]
kaiming_uniform_: [[ 0.5625    -0.9321289 -1.0996094 -0.640625 ]]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/12098.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ceph集群扩容及数据再均衡原理分析

用户文件在Ceph RADOS中存储、定位过程大概包括&#xff1a;用户文件切割成对象、对象映射到PG、PG分组PGP、PG映射到OSD。这些过程中&#xff0c;可能涉及了大量概念和变量&#xff0c;而其实它们大部分是通过HASH、CRUSH等算法计算出来的&#xff0c;初始参数可能也就只有这么…

sql实践

1.从excel导入数据 在excel导入数据时要先在数据库中创建对应的数据库表 CREATE TABLE your_table_name (crawl_datetime DATE,url CHAR(255),company_name CHAR(255),company_size CHAR(255),company_type CHAR(255),job_type CHAR(255),job_name CHAR(255),edu CHAR(255),e…

暗区突围TWITCH掉宝关联帐号不了 无法关联帐号 关联不上

Twitch&#xff0c;作为全球知名的游戏直播平台&#xff0c;常常携手热门游戏如《暗区突围》举办互动活动&#xff0c;为玩家带来独特的参与体验。在这个过程中&#xff0c;“绑定关联”成为了连接直播观众与游戏世界的桥梁。简单来说&#xff0c;Twitch绑定关联《暗区突围》指…

leetcode——链表的中间节点

876. 链表的中间结点 - 力扣&#xff08;LeetCode&#xff09; 链表的中间节点是一个简单的链表OJ。我们要返回中间节点有两种情况&#xff1a;节点数为奇数和节点数是偶数。如果是奇数则直接返回中间节点&#xff0c;如果是偶数则返回第二个中间节点。 这道题的解题思路是&a…

OpenAI 发布了免费的 GPT-4o,国内大模型还有哪些机会?

大家好&#xff0c;我是程序员X小鹿&#xff0c;前互联网大厂程序员&#xff0c;自由职业2年&#xff0c;也一名 AIGC 爱好者&#xff0c;持续分享更多前沿的「AI 工具」和「AI副业玩法」&#xff0c;欢迎一起交流~ 这是今天在某乎看到一个问题&#xff1a;OpenAI 发完 GPT-4o&…

关闭 Visual Studio Code 项目中 的eslint的语法校验 lintOnSave: false;; 项目运行起来之后 自动打开浏览器 端口

1、在 vue.config.js 配置 一个属性 lintOnSave: false 2、配置两个属性 open: true, // 自动打开浏览器 port: 3000 // 端口 port 端口号根据自己的项目实际开发来 配置

Lumina-T2X 一个使用 DiT 架构的内容生成模型,可通过文本生成图像、视频、多视角 3D 对象和音频剪辑。

Lumina-T2X 是一个新的内容生成系列模型&#xff0c;统一使用 DiT 架构。通过文本生成图像、视频、多视角 3D 对象和音频剪辑。 可以在大幅提高生成质量的前提下大幅减少训练成本&#xff0c;而且同一个架构支持不同的内容生成。图像质量相当不错。 由 50 亿参数的 Flag-DiT …

structured concurrency

1. 基于 c executions的异步实现 - 从理论到实践 - 知乎 (zhihu.com)

kubeadm部署k8s v1.30

k8s 1.30主要新功能 kubelet 重启后稳健的 VolumeManager 重建&#xff08;SIG Storage&#xff09; 防止在卷还原过程中未经授权的卷模式转换&#xff08;SIG Storage&#xff09; Pod 调度可用性&#xff08;SIG Scheduling&#xff09; PodTopologySpread 中的最小域数&a…

VitePress变成可视化了

VitePressSimple 非技术人员搭建博客的门槛又降低了&#xff0c;这个开源项目把VitePress变成可视化了。 要搭建博客、教程网站&#xff0c;VitePress是门槛最低的方案之一&#xff0c;唯一和技术有关的就是会用到编辑器来操作。 现在好了&#xff0c;VitePressSimple直接把Vit…

Java 枚举的使用与反射应用

文章目录 一、定义方式1.1 简单定义1.2 带参数定义 二、反射应用1. 反射获取枚举常量2. 反射获取枚举属性3. 动态调用枚举方法4. 动态设置枚举属性5. 判断枚举类型6. 反射获取枚举信息 单例模式&#xff1a;枚举类型是一种有限实例的类&#xff0c;枚举常量在定义时就被限定为一…

解决在云服务器上无法使用QQ邮箱发送邮件的问题

最近在做测试demo的时候发现&#xff0c;在本地可以使用qq邮箱的服务来进行邮件的发送&#xff0c;但是把项目部署到云服务器上就没办法发送邮件&#xff0c;并且报错是连接超时&#xff1a; 向xxxxxqq.com用户发送绑定邮箱验证码异常&#xff1a;Mail server connection fail…

leetcode234-Palindrome Linked List

题目 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表 。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,2,1] 输出&#xff1a;true 分析 可以用快慢指针的方式找到链表的…

自用代码生成器代码

代码生成器 pom.xml文件中 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.ap…

【软件测试】自动化测试 Selenium 篇(一)

一、什么是自动化测试 1、自动化测试介绍 自动化测试指软件测试的自动化&#xff0c;在预设状态下运行应用程序或者系统&#xff0c;预设条件包括正常和异常&#xff0c;最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。 自动化就相当于将人工测试手段进行转换…

【激活函数--下】非线性函数与ReLU函数

文章目录 一、非线性函数在神经网络中的重要性二、ReLU函数介绍及其实现2.1 ReLU函数概述2.2 ReLU函数的Python实现及可视化 一、非线性函数在神经网络中的重要性 在神经网络中&#xff0c;激活函数的选择对于网络的性能和能力至关重要。阶跃函数和Sigmoid函数除了是激活函数的…

数据可视化-课堂记录

week02 # 数据可视化的发展历史 作用 格式塔原则 # 数据可视化的流程# 数据分析 指标体系建设 确定一个行业指标体系实现报表&#xff08;power bi python matplotlib seaborn pyecharts echarts&#xff09; # 数据分析面试 技术&#xff1a;sqlexcelpythonpowerbispss …

JS 实现冒泡排序

冒泡排序原理&#xff1a; 升序冒泡&#xff1a;两次循环&#xff0c;相邻元素两两比较&#xff0c;如果前面的大于后面的&#xff0c;就交互位置&#xff1b; 降序冒泡&#xff1a;两次循环&#xff0c;相邻元素两两比较&#xff0c;如果前面的小于后面的&#xff0c;就交互…

stable-diffusion-webui配置

源码地址 https://github.com/AUTOMATIC1111/stable-diffusion-webui.git报错Fresh install fail to load AttributeError: NoneType object has no attribute _id pydantic降级 pip uninstall pydantic pip install pydantic1.10.11记得要把clip-vit-large-patch14放在opena…

业务逻辑攻击是什么,如何有效进行防护

想象一下&#xff1a;您的开发团队刚推出了一款令人惊叹的全新应用程序&#xff0c;它具有顶级的API安全性&#xff0c;通过客户端保护对其进行了强化&#xff0c;甚至还设置了针对机器人攻击的防御措施。你感到这款产品很有安全保障&#xff0c;自己的团队出色地完成了工作。 …