簡體   English   中英

在Python中多次運行腳本並保存輸出

[英]Run a script in Python several times and save the output

我在python中有一個名為script.py的腳本,該腳本從具有給定均值和標准差的某些分布中選擇一些隨機值,然后使用這些值進行一些計算。 我正在2000個時間步的循環中針對七個不同的分布進行此操作。 經過一些額外的計算后, script.py返回一個向量作為最終輸出。 我想做的是同時運行此腳本100次(我不希望一次運行的結果影響其他腳本的結果),我想知道這100次運行中每個輸出的輸出矢量,以便找到平均值結束。 一個好的方法是將每個向量另存為100列矩陣中的一列。

我嘗試了子過程,但是在尋找一種方法來保存每次運行的輸出時遇到了麻煩。 任何幫助將非常感激。

我的代碼的一部分包括以下內容:

for k in range(N2):     
     for i in range(7):
        sample2 = np.random.normal(prior[i,0],prior[i,1],1)
        y[i] = sample2[0]
     index, value = max(enumerate(y), key=operator.itemgetter(1)) 
     indices[k] = index
     #trials[k,index] = trials[k-1,index]+1

     realdata = np.random.normal(parameters[index,0],parameters[index,1],1)                        

     ytrue[k] = realdata[0]
     prior[index,0] = (prior[index,0]/prior[index,1]**2+ytrue[k]/variance)/(1./prior[index,1]**2+1./variance)
     prior[index,1] = math.sqrt(1./(1./prior[index,1]**2+1./variance))
     meanforoptions[k,:] = prior[:,0]
     regret = parameters[1,0]-ytrue[k]
     cumulativeregret[k] = cumulativeregret[k-1]+regret 

基本上我想計算100次累積遺憾,然后計算平均值。 只運行一次腳本不能給我足夠的效果,因為該過程中存在很多隨機性。 希望這可以幫助。

您可以使用並行運行100次-如果您的多核服務器帶有多個CPU,它將真正並行運行所有服務器。

像這樣的事情應該從我頭頂上消失。

 parallel -j 100 python script.py > script.out

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM