広義のテンソルは任意の次元であり、狭義では 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)
- 単一要素のテンソルは
x
int に変換されます。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. 結合された次元の次元は異なっていてもかまいませんが、他の次元の次元は同じでなければなりません。