PyTorch チュートリアル (ビギナー Part1)

Source: Deep Learning on Medium

PyTorch チュートリアル (Part1 テンソル)

from wikimedia

PyTorchとは?

Pythonベースの科学計算パッケージのことで、主に次の人を対象としていいます。

  • NumpyをGPUに置き換えてパフォーマンスを向上させたい人
  • ディープラーニングのリサーチャー(柔軟性とスピードを兼ね備えたプラットフォームのため)

Tensor(テンソル)とは?

Tensorとはスカラー(0次元)、ベクトル(1次元)、行列(2次元以上) の総称のことです。
こちらの解説がわかりやすいです。
https://blog.apar.jp/deep-learning/12121/

Tensorの基本

  • new_ と言うメソッドを使うと既存のTensorのサイズを変更することができる
  • Tensorのサイズを取得する。torch.Sizeはタプルとして扱うことができる。
  • Tensor同士の足し算は色々な方法がある。以下の例では、xとyの値自体はいずれも変化しない。
  • y.add(x)はyの値は変化しないがy.add_(x)とアンダースコアを関数の後ろに付けるとy自体が加算される。
  • PyTorchは基本的にTensor型でデータをやり取りするがTensor型から値を取り出すにはitem()を使用する
  • 既存のTensorのサイズの次元をview()メソッドで変更することができる。numpyの知識がある人はreshape()と同じと考えて良い。
    -1を使うと残りのサイズが推測し変換される。
  • 既存のTensor xから一部の行列を抜き出したいとき
  1. x[0, :] は 1行目の全ての列を取得する
    カンマの左は行を示し0は1行目、カンマの右は列を示し:(コロン)は全ての列を示す。
  2. x[1, :] は 2行目の全ての列を取得する
  3. x[:, 0] は 1列目の全ての行を取得する
    カンマの左は行を示し:(コロン)は全ての行を示し、カンマの右は列を示し0は1列目を示す。
  4. x[:, 1] は 2列目の全ての行を取得する
  • PyTorchのTensorからnumpy配列に変換するにはnumpy()を使用する。
  • numpy配列からPyTorchのTensorに変換するにはtorch.from_numpy()を使用する。

References

https://notebooks.azure.com/pytorch/projects/tutorials/html/beginner/blitz/tensor_tutorial.ipynb