第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PyTorch 和精確解析表達式之間的差異

PyTorch 和精確解析表達式之間的差異

蝴蝶不菲 2023-12-12 15:02:10
在PyTorch中使用多元正態(tài)分布時,我決定將其與精確的解析表達式進行比較。令我驚訝的是,它們之間存在著微小的差異。這種行為有什么原因嗎?首先,使用 MultivariateNormal 計算概率:1 from torch.distributions.multivariate_normal import MultivariateNormal2 import torch3 sigma = 24 m = MultivariateNormal(torch.zeros(2, dtype=torch.float32), torch.eye(2, dtype=torch.float32)*sigma**2)5 values_temp = torch.zeros(size=(1,2), dtype=torch.float32)6 out_torch = torch.exp(m.log_prob(values_temp))7 out_torch Out: tensor([0.0398])其次,可以為這種情況寫出精確的公式:1 import numpy as np2 out_exact = 1/(2*np.pi*sigma**2) * torch.exp(-torch.pow(values_temp, 2).sum(dim=-1)/(2*sigma**2))3 out_exactOut: tensor([0.0398])他們之間有一個區(qū)別:1 (out_torch - out_exact).sum()Out: tensor(3.7253e-09)有人可以幫助我理解這兩個片段的行為嗎?這兩種表達方式哪個更準確呢?也許有人可以在代碼的任何部分強調(diào)我的錯誤?
查看完整描述

1 回答

?
溫溫醬

TA貢獻1752條經(jīng)驗 獲得超4個贊

大多數(shù)現(xiàn)代系統(tǒng)使用IEEE 754標準來表示固定精度浮點值。因此,我們可以確定 pytorch 提供的結(jié)果或您計算的“精確”值實際上并不完全等于解析表達式。我們知道這一點是因為表達式的實際值肯定是無理數(shù),而 IEEE 754 不能精確地表示任何無理數(shù)。這是使用固定精度浮點表示時的普遍現(xiàn)象.

經(jīng)過進一步分析,我們發(fā)現(xiàn)您看到的歸一化差異約為機器 epsilon 的量級(即3.7253e-09 / 0.0398約等于torch.finfo(torch.float32).eps),表明差異可能只是浮點運算不準確的結(jié)果。

為了進一步演示,我們可以編寫一個與您所擁有的數(shù)學(xué)等效的表達式:

out_exact?=?torch.exp(np.log(1/?(2*np.pi*sigma**2))?+?(-torch.pow(values_temp,?2).sum(dim=-1)/2/sigma**2))

這與我當(dāng)前安裝的 pytorch 給出的值完全一致。


查看完整回答
反對 回復(fù) 2023-12-12
  • 1 回答
  • 0 關(guān)注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號