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

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

錯誤:非常量表達(dá)式無法從類型'npy_intp'縮小為'int'

錯誤:非常量表達(dá)式無法從類型'npy_intp'縮小為'int'

千萬里不及你 2021-04-08 14:15:37
我正在嘗試運行以下模型,但在編譯過程中將失?。篿mport numpy as npimport pymc3 as pmdef sample_data(G=1, K=2):    # mean proportion ([0,1]) for each g    p_g = np.random.beta(2, 2, size=G)    # concentration around each p_g    c_g = np.random.lognormal(mean=0.5, sigma=1, size=G)    # reparameterization for standard Beta(a,b)    a_g = c_g * p_g / np.sqrt(p_g**2 + (1.-p_g)**2)    b_g = c_g*(1.-p_g) / np.sqrt(p_g**2 + (1.-p_g)**2)    # for each p_g, sample K proportions    p_gk = np.random.beta(a_g[:, np.newaxis], b_g[:, np.newaxis], size=(G, K))    return p_gk# Data sizeG = 3K = 5# obtain a G x K array of proportions p_gk in [0,1]data = sample_data(G, K) with pm.Model() as m:    # Parameters    p_g = pm.Beta('p_g', 1., 1., shape=G)    sd_g = pm.HalfNormal('sd_g', sd=1., shape=G)    # Observed proportions    p_gk = pm.Beta('p_gk', mu=p_g, sd=sd_g, shape=(G, K), observed=data)    trace = pm.sample(2000)我是PyMC3的新手。運行現(xiàn)有的PyMC3示例時,我看不到這些錯誤。我懷疑看到這些是因為我使用的是多維格式(即(G,K)),因為我還沒有看到其他人使用此格式(我可能是對Stan熟悉)。通常,我很難理解如何實現(xiàn)具有多個維度的多級模型。知道是什么原因?qū)е铝宋宜吹降腻e誤嗎?
查看完整描述

2 回答

?
哆啦的時光機

TA貢獻(xiàn)1779條經(jīng)驗 獲得超6個贊

一種解決方法是抑制編譯錯誤:


import theano


theano.config.gcc.cxxflags = "-Wno-c++11-narrowing"

這些錯誤對程序正確性的影響程度尚不清楚。當(dāng)我在CentOS 7上編譯時,它們不會出現(xiàn)(即使使用顯式地檢查它們-Wc++11-narrowing)。在Mac OS X上具有抑制錯誤的采樣結(jié)果與在CentOS上沒有采樣結(jié)果是可比的。


我還是希望看到一個可以解釋根本問題的答案。


查看完整回答
反對 回復(fù) 2021-04-27
?
躍然一笑

TA貢獻(xiàn)1826條經(jīng)驗 獲得超6個贊

是的-您必須對更高尺寸的形狀更加明確。該庫確實有點“聰明”,但是如果您提供shape參數(shù),它將使用該參數(shù)。


您的示例在語法上通過設(shè)置固定


with pm.Model() as m:


    # Parameters

    p_g = pm.Beta('p_g', 1., 1., shape=(G, 1))

    sd_g = pm.HalfNormal('sd_g', sd=1, shape=(G, 1))


    # Observed proportions

    p_gk = pm.Beta('p_gk', mu=p_g.dot(np.ones((1,K))), sd=sd_g.dot(np.ones((1, K))), shape=(G, K), observed=data)

    trace = pm.sample()

注意,運行將m.check_test_point()顯示p_gk具有0的概率。這是因為sd_g太寬了,PyMC3嘗試將其初始化為0.8,這超出了mu, sd參數(shù)化beta分布的支持。


設(shè)置還sd_g = pm.HalfNormal('sd_g', sd=0.1, shape=(G, 1))允許您從模型中采樣,盡管這可能不是您想要的!


查看完整回答
反對 回復(fù) 2021-04-27
  • 2 回答
  • 0 關(guān)注
  • 311 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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