컨볼 루션 스파 스 자동 인코딩을 만들려고하고 있으며 값이 넉넉한 (형태가 [samples, N, N, D]
) 4D 매트릭스를 스파 스 매트릭스로 변환해야합니다.밀도가 높은 스파 스 매트릭스 Tensorflow
각 샘플에 대해 D NxN 기능 맵이 있습니다. 최대 값을 1로 매핑하고 다른 모든 값을 0으로 매핑하여 각 NxN 기능 맵을 희소 행렬로 변환하고 싶습니다.
실행시에는 물론 그래프 선언 중에 (이 작업이 필요합니다. 그 결과 희박한 행렬을 다른 그래프 연산에 대한 입력으로 사용하는 방법). 그러나 인덱스를 가져 와서 희소 행렬을 만드는 방법을 이해하지 못합니다.
당신이 Tensorflow 또는이 변환을 수행 하시겠습니까 파이썬? if in python이 함수는 밀도가 높은 행렬에서 희소 행렬로 변환하는 데 도움이됩니다 (http://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.coo_matrix.html#scipy.sparse.coo_matrix). tf.SparseTensor (coo 형식 사용)를 사용하여 각 기능 맵을 저장하고 목록을 사용하여 모든 스파 스 테네시를 저장합니다. –
특히 nonzero() (http://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.coo_matrix.nonzero.html#scipy.sparse.coo_matrix.nonzero)는 0이 아닌 숫자에 대한 색인을 제공 할 수 있습니다. 집단. 이것이 런타임 접근법으로 간주되는지 확실하지 않습니다. 이것은 그래프 선언 전에 일부 데이터 전처리 일 수 있습니다. 런타임에 4D 조밀 한 행렬이 생성되었거나 단순히 주어진 입력 데이터입니까? –
런타임시 (나는 numpy로 그 작업을 수행하는 방법을 알고 있습니다.) 그래프를 작성하는 동안 (Tensorflow를 사용하여) 이렇게하고 싶지 않습니다. – Cramer