相同的隨機種子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.pswp.cn/web/12098.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12098.shtml
英文地址,請注明出處:http://en.pswp.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;自己的團隊出色地完成了工作。 …