0

ray (python) がマスクされた np.arrays で操作/統計を処理することは可能ですか? [この場合はnp.nansum(...) ]。

マスクされていない配列の場合、完全に機能します。ただし、マスクされた配列ではクラッシュします (以下のメッセージ エラーを参照)。

import numpy as np
import numpy.ma as ma
import ray
ray.init()

#-to nansum over axis 0 (layers)
@ray.remote
def sumo(x):
    return np.nansum(x,axis=0,keepdims=True)

#-to allocate/reference the 3D-np.array into ray 'cores' 
@ray.remote
def matrox(wat):
    return ma.copy(wat)

#-a small reproducible example
data = np.int16((np.random.normal(size=(4,5,6))*100))
#-masking the data
data = ma.masked_less_equal(data,0)
#-this fails:
data_id = matrox.remote(data)
##-this doesn't fail as it gets rid off of the mask (but I DO need the mask)
#data_id = matrox.remote(data.data)

data_id = ray.put(data)
answer = ray.get(sumo.remote(data_id))

以下は、行を実行するときに表示されるエラーです。

data_id = matrox.remote(データ)

ここに画像の説明を入力

配列のサイズは 4x5x6=120 ですが、120 の値を 240=4x5x12 に適合させると「文句を言います」 ValueError : サイズ 120 の配列を形状 (4,5,12) に再形成できません

4

0 に答える 0