0
4Dスパース行列(21x21x21x21)を使用しています。要素の1つだけが1に設定されます。その後、この行列をベクトル化して非ゼロの行を決定します。プロセス全体には約6分かかるため、時間がかかりすぎます。これをPythonで効率的に行う方法はありますか?Pythonで4Dスパース行列を効率的に作成して処理する方法
sparseMatrix = np.zeros((21,21,21,21), dtype = np.int8)
#w,x,y,z can be any random integer from 0 to 20.
w = 3
x = 5
y = 18
z = 16
sparseMatrix[w, x, y, z] = 1
sparseMatrix_vec = np.reshape(sparseMatrix, [-1,1])
sparseMatrix_vec_index = np.nonzero(sparseMatrix_vec)[0][0]
あなたのプロジェクトでは、1つの1を含む21x21x21x21の疎な行列で終わりますか?このような場合は、単にデータ表現を変更する必要があります。データを取得するプロセスを使用して、1の位置を単純にエンコードします。 – ma3oun
@ ma3oun、返事をありがとう。これをどのようにエンコードするかの例を挙げることができますか?はい、私はいつも21x21x21x21の疎な行列で終わるでしょう。 –
テンソルフローを使用して、疎なデータを表現することもできます。 Tensorflowは疎なテンソルをサポートし、これらはより効率的に処理されます。詳細はこちら:https://www.tensorflow.org/api_docs/python/tf/SparseTensor – ma3oun