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次元テンソルXを持ち、インデックスの2つのリストは最初のインデックスと2番目のコールaとbです。私はこれを行うことができますどのように2dテンソルでの高度な索引作成
X[a[i],b[i]] = 0 for i in range(len(a))
をしたいです。私が直接行う場合X[a,b]
エラーはIndexErrorです:高度なインデックスオブジェクトをブロードキャストできませんでした
インデックスを含む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]