PyMCを使用してMCMC計算を行っています。私のデータは、それぞれが 24 * 1000 の形状を持つ 47 個のパーツで構成されています。
MCMC を機能させるために、47 個のパーツから大きな配列を作成したので、(1128)* 1000 配列になりました。
適合するモデルは、同じサイズの配列を作成します。47 個のパーツのそれぞれに、ロードする必要がある異なる値があるため (スケーリング係数など)、これをループで実行します。
map が私の配列だとしましょう:
for i in range(len(map[::])/47):
scale = scale_all[i]
self.trans_calc["t"] = 0.
self.trans_calc.xyzPos()
pos0 = self.trans_calc.calc_pos1()
for k in range(24):
self.trans_calc["t"] = self.time[k]
self.trans_calc.xyzPos()
if self.trans_calc.onstar() == False:
curve = pos0
else:
pos1 = self.trans_calc.calc_pos1()
curve = pos0 - pos1 + 1.0 * scale
map[k+i*47] = curve
return map
47 個のパーツは互いに独立しているため、マルチプロセッシングを使用すると速度が向上します。
マップの正しい位置に書き込むためにどのように設定する必要があるのか わかりません。解決策を探しましたが、何かが見つかりませんでした。または、見つけたものを理解できませんでした。