入門
ちょうどビッグデータと機械学習エコロジー関連のコンテンツの多くを学ぶ前に、あまりにも緩和されていない、自分の缶の上に自宅で仕事をするときの流行は、時間であり、気持ちが、ボトルネックに達し、ゆっくりと消化に手を必要としています。ステップによって次のステップは、へpytorchの使用に彼らの学習を実践します。
後半忘れ中に読みやすい連続記録の共通PyTorch一般的な方法を、開発プロセスを学ぶための最初の記事の深さの間に、第1、。
ドット
メソッドの実装torch.mul使用は、*を直接使用することができます。寸法が異なる場合、ブロードキャスト・メカニズムをトリガーします。
>>> a = torch.ones(3,4)
>>> a
tensor([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])
>>> b = torch.Tensor([1,2,3]).reshape((3,1))
>>> b
tensor([[1.],
[2.],
[3.]])
>>> torch.mul(a, b)
tensor([[1., 1., 1., 1.],
[2., 2., 2., 2.],
[3., 3., 3., 3.]])
行列の乗算
torch.mmとtorch.matmul二つの関数は行列の乗算を計算するために使用されます。MM次元マトリクスより二次元の誤差よりも、プロセスである。GCC - 内部が高次元です。
# 二维乘二维
>>> a = torch.ones(3,4)
>>> b = torch.ones(4,2)
>>> torch.mm(a, b)
tensor([[4., 4.],
[4., 4.],
[4., 4.]])
# 二维乘三维
>>> a = torch.ones(3,4)
>>> b = torch.ones(5,4,2)
>>> torch.matmul(a, b).shape
torch.Size([5, 3, 2])
# 三维乘三维
>>> a = torch.ones(5,4,2)
>>> b = torch.ones(5,2,3)
>>> torch.matmul(a, b).shape
torch.Size([5, 4, 3])
テンソル
初期化されていないテンソルの5×3の作成
x = torch.empty(5, 3)
5×3のテンソルランダムな初期設定を作成します
x = torch.rand(5, 3)
長いすべてゼロテンソルの5×3タイプを作成します。
x = torch.zeros(5, 3, dtype=torch.long)
float32全テンソル1の5×3タイプを作成します。
x = torch.ones(5, 3, dtype=torch.float32)
テンソル1は対角線でのfloat32の5×3タイプを作成します。
x = torch.eye(5, 3, dtype=torch.float32)
形状変形テンソル
y = x.view(15)
z = x.view(-1, 5) # -1所指的维度可以根据其他维度的值推出来
print(x.size(), y.size(), z.size())
新たなテンソルテンソルのソースは、異なるサイズを有することができるが、データはそれらの1つを変更することである、共有されているものの、ノートビュー()戻り、他にも変更されます。(名前が示すように、テンソルの視野角を変更するために単に表示、内部データが変更されていません)
x_cp = x.clone().view(15) # 不共享数据
x -= 1
print(x)
print(x_cp)
numpyのは、テンソルを回します
すべてのテンソルをchartensorに加えてnumpyのに変換することができます
import numpy as np
a = np.ones(5)
b = torch.from_numpy(a)
np.add(a, 1, out=a)
print(a)
print(b)
numpyのを回すテンソル
また、変更ので、相手の値を変更するには、同じアドレスにテンソルとnumpyの変換されたポイント、注意すべきです
a = torch.ones(5)
b= a.numpy()
一般的な機能:
機能 | 機能 |
---|---|
テンソル(*サイズ) | 基本コンストラクタ |
テンソル(データ) | 同様のnp.arrayコンストラクタ |
もの(*サイズ) | 完全1Tensor |
ゼロ(*サイズ) | 完全0Tensor |
アイ(*サイズ) | 対角1、そうでなければ0 |
arange(S、E、ステップ) | SからE、ステップのステップへ |
linspace(S、E、手順) | SからEまで、均等に部品の段階にカット |
ランド/関数randn(*サイズ) | 制服/正規分布 |
通常の(への)(平均値、STD)/均一 | ノーマル/一様分布 |
randperm(M) | ランダム配置 |
高度な機能:
機能 | 機能 |
---|---|
index_select(入力、DIM、インデックス) | そのようないくつかの行を選択すると、指定した次元dimに選択すると、一部の列 |
masked_select(入力、マスク) | 一例として、[> 0]を、選択のために使用ByteTensor |
非ゼロ(入力) | 非ゼロ要素のインデックス |
ギャザー(入力、DIM、インデックス) | 索引、サイズインデックス同じ次元dimに出力データを選択します |
線形代数
機能 | 機能 |
---|---|
痕跡 | 対角要素の和(行列のトレース) |
DIAG | 対角要素 |
triu /兆 | 上三角行列/下三角は、オフセット値を指定し |
MM / BMM | 行列の乗算、バッチマトリックス乗算 |
addmm / addbmm / addmv /アドレス/ baddbmm ... | 行列演算 |
トン | トランスポーズ |
ドット/クロス | 内積/外積 |
逆の | 逆行列 |
SVD | 特異値分解 |