深いPyTorch()PyTorchの基礎を学習ハンズ

入門

ちょうどビッグデータと機械学習エコロジー関連のコンテンツの多くを学ぶ前に、あまりにも緩和されていない、自分の缶の上に自宅で仕事をするときの流行は、時間であり、気持ちが、ボトルネックに達し、ゆっくりと消化に手を必要としています。ステップによって次のステップは、へ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 特異値分解
出版元の記事 ウォンの賞賛0 ビュー27

おすすめ

転載: blog.csdn.net/HyperionSS/article/details/104279751