2016-12-16 12 views
0

밀도가 높은 텐서의 경우와 같이 스파 스 텐서의 셀/섹션을 인덱싱하는 방법이 있습니까?TensorFlow에서 스파 스 텐서를 어떻게 인덱싱합니까?

# dens_tensor.shape = [10, 10, 10] 
dense_cell = dense_tensor[0,0,1] 

하지 않으면, 누군가가 인덱스에 대한 해결 방법을 스파 스 텐서를 알고 있나요?

+0

'tf.sparse_to_dense'를 시도한 다음 정기적으로 색인을 생성하고 TF가이를 최적화 할 수 있기를 바랍니다. – sygi

+0

나는 내 텐서가 조밀 할 때 기억 문제를 겪는다. – spreisel

답변

1

SparseTensor는이라는 필드가 있습니다.이 필드는 차원 (N, ndims)의 2D Tensor를 얻을 수 있습니다. 여기서 N은 스파 스 매트릭스에서 0이 아닌 항목의 수이고 ndims는 스파 스 매트릭스의 차원입니다.

이 2D 텐서가 주어지면 확실히 텐서 내에서 필요한 색인을 검색 할 수 있습니다. AFAIK, tensorflow에는 그러한 검색이 없지만 2D 텐서에서 session.run()을 수행 한 다음 2D numpy 배열 (https://stackoverflow.com/a/25823710/5249801) 내에서 색인 (0, 0, 1)을 검색 할 수 있습니다. 당신이 당신의 NumPy와 배열 tf.Session().run(sparse_matrix.indices)에 필요한 인덱스 (0, 0, 1) 말에, 인덱스 x를 발견하면

, 당신이 찾고있는 값은 고밀도 2 차원 텐서에 인덱스 x에서 또한 sparse_matrix.values