torch.stack()

図に示すように、3x3テンソルa、b、cの3つがあります。

これらの3つのテンソルの最後の次元の要素を重ねて新しいテンソルを形成したい場合

d = torch.stack((a、b、c)、dim = 2)と入力します

あなたはそれらが二次元で重ね合わされていることに気付くでしょう、特に変更は下の図に示されています

d [0] [0]の位置は、[1]の[1] [0] [0]、[10]のb [0] [0]、[100]のc [0] [0]で構成され、これら3つサイズ3の新しい要素[1,10,100]は、要素の重ね合わせによって形成されるため、dの次元は3 * 3 * 3です。ここの薄暗いパラメータに注意してください!それらは2番目の次元に重ね合わされていますが(pytorchでは0から数えるため、最初の次元はdim = 0、2番目の次元はdim = 1です)、dimはスタック関数で記述しましたただし、dim = 2であり、これは3番目の次元です。つまり、最終的な生成結果は3番目の次元にあり、元の要素が3番目の次元ではないということです。したがって、別の書き方があります。dim= -1と書きます。あなたが何であれ、最後の次元を指定します。

結果は、最初にdim = 2と書いたときと同じです。

 

別の例を追加して、このdimパラメータの意味を感じてください。これは、スタックの結果が行われる要素を指定します。

dimはそれぞれ0、1、2に設定されています。観測結果に注意してください。

c、dim = 0、c = [a、b]の場合

d、dim = 1、d = [[a [0]、b [0]]、[a [1]、b [1]]]の場合

e, dim = 2 时, e = [     [   [ a[0][0], b[0][0] ]  , [ a[0][1], b[0][1] ]  ,  [ a[0][2],b[0][2] ] ] ,                                    

 [[a [1] [0]、b [1] [0]]、[a [1] [1]、b [0] [1]]、[a [1] [2]、b [1] [2]]]]
 

 

943の元の記事を公開 136のような 330,000以上を訪問

おすすめ

転載: blog.csdn.net/weixin_36670529/article/details/105349995