0
4D 희소 행렬 (21x21x21x21)을 사용하고 있습니다. 요소 중 하나만 1로 설정됩니다. 이후에이 행렬을 벡터화하고 0이 아닌 행을 결정합니다. 전체 프로세스는 계산하는데 약 6 분이 소요됩니다. 이 작업을 파이썬에서 효율적으로 수행 할 수있는 방법이 있습니까?효과적으로 파이썬에서 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를 사용하여 스파 스 데이터를 나타낼 수도 있습니다. Tensorflow는 드문 드문 텐서를 지원하며보다 효율적으로 처리됩니다. 자세한 정보는 다음을 참조하십시오. https://www.tensorflow.org/api_docs/python/tf/SparseTensor – ma3oun