質問: 0`だと、上記の入力tは下記のような出力になります。 ``` tensor([[1, 2], [3, 2]]) ``` **公式ドキュメント:** ご回答、何卒宜しくお願い致します。
回答: 公式ドキュメントを拝見いたしました。3Dのテンソルに対する計算式が載っていますね。 これを2Dのテンソルに置き換えるには、添え字のkと書かれた部分を削除すればok。 ``` out[i][j] = input[index[i][j]][j] # if dim == 0 out[i][j] = input[i][index[i][j]] # if dim == 1 ``` この定義式通りに動いているように思います。 下記は理解しやすいかどうかわからないですが、対応関係が見えるように行列を配置してみました。 ``` #dim==0の時 indexは行番号を表しており、その行番号に対するinputの値をoutputとする #列方向に対してはinputとoutputは同じ列を見ている。 input 1 2 3 4 index 0 0 1 0 output #output 1 2 #input[0][0] input[0][1] 3 2 #input[1][0] input[0][1] #dim==1の時 indexは列番号を表しており、その列番号に対するinputの値をoutputとする #行方向に対してはinputとoutputは同じ行を見ている。 input index output #output 1 2 0 0 1 1 #input[0][0] input[0][0] 3 4 1 0 4 3 #input[1][1] input[1][0] ```