0

두 번째 텐서 X와 첫 번째 색인 인 두 개의 색인 목록과 두 번째 a와 b 목록이 있습니다. 나는이 작업을 수행 할 수있는 방법2 차원 텐서에서의 고급 색인 생성

X[a[i],b[i]] = 0 for i in range(len(a))

하고 싶어. 내가 직접 X[a,b] 오류가있는 경우 IndexError : 고급 색인 생성 객체를 브로드 캐스트 할 수 없습니다.

답변

2

색인이 들어있는 lists을 확인하면 일부 값이 범위를 벗어날 수 있습니다. 당신의 인덱스가 올바른 범위에있는 경우

In [43]: X[4,4]

IndexError Traceback (most recent call last) in() ----> 1 X[4,4]

IndexError: index 4 is out of range for dimension 0 (of size 3)

것은, 그것은 잘 작동합니다 : 당신은 아래와 같은 IndexError을 얻을 것이다 때이다.

In [35]: X = torch.Tensor([[3, 4, 5, 6], [1, 2, 3, 4], [6, 3, 2, 1]]) 

In [36]: X 
Out[36]: 

3 4 5 6 
1 2 3 4 
6 3 2 1 
[torch.FloatTensor of size 3x4] 

In [37]: a = [0, 2] 

In [38]: b = [1, 2] 

In [39]: X[a, b] 
Out[39]: 

4 
2 
[torch.FloatTensor of size 2] 

In [40]: X[a, b] = 0 

In [41]: X 
Out[41]: 

3 0 5 6 
1 2 3 4 
6 3 0 1 
[torch.FloatTensor of size 3x4] 
: 여기

은 일례이며
관련 문제