0

私は2次元テンソルXを持ち、インデックスの2つのリストは最初のインデックスと2番目のコールaとbです。私はこれを行うことができますどのように2dテンソルでの高度な索引作成

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] 
関連する問題