散らばったいくつかの Pytorch ノート (テンソル演算)

広義のテンソルは任意の次元であり、狭義では 1 次元がベクトル、2 次元が行列、3 次元以上がテンソルです。

  • テンソルを作成します。a=torch.tensor(1,dtype=torch.float32)
  • tensor–>numpy: b=a.NumPy()b は numpy ですが、a はまだ tensor です
  • numpy–>tensor: c=torch.from_NumPy(b)c はテンソルです
  • テンソル–>リスト :tensor.tolist()
  • リスト→テンソル:torch.tensor(list)
  • 単一要素のテンソルはxint に変換されます。x.item()

自動勾配機能をサポートしているため、PyTorch の変数はパッケージ torch.autograd から取得されます。


1. ベクトル演算

ベクトル生成

  • a=torch.linspace(1.0,10.0,4) # (始点、終点、いくつかの部分に分割)
  • a=torch.arange(1,5)# [1,2,3,4]

ベクターステッチ

  • b=torch.cat([v1,v2,v3])# 括弧は角括弧を設定します

要素数

  • x=torch.numel(a)

要素ごとの加算、減算、乗算 +/-/*

スカラーによるベクトルの乗算と除算 torch.div(a,2)


2. 行列演算

torch.zeros(3,3,3)# いくつかの数値は複数の次元です。数値を直接渡すだけです #
torch.ones_like(a)既存の行列の形状を模倣して、すべて 0 またはすべて 1 の行列を生成します
torch.eye(3)            # 3*3 の単位行列を生成します (対角線は 1)
torch.t(a)               #行列転置
*                              # The同じ形 行列の対応する要素を掛ける
torch.mm(a1,a2)/ torch.matmul(a1,a2)/ a1@a2# 行列のドット積/乗算
torch.det(a)            # 行列式の値を見つける
torch.inverse          # 行列の反転
torch.cat([a1,a2],0)# 行列のスプライシング、0 上下、1 前後


3. テンソル演算

  • Change shape a.view(5,5)# 数字を直接渡すだけ
    • a.view(5,-1)、ライン上で 5 ラインを確保するため
  • テンソル連結torch.cat([a1,a2],2)
    • For tensor that need to be spliced, the number of tensor must be same. 結合された次元の次元は異なっていてもかまいませんが、他の次元の次元は同じでなければなりません。

おすすめ

転載: blog.csdn.net/codelady_g/article/details/124992716