I am Charmie

メモとログ

pytorch

pytorchを使った方が良いかもしれないと思ったので,色々調査.

  1. Tensor
    1. 任意オーダーのtensorを定義する型
    2. Tutorialではオーダーが1,2のtensor(つまり,ベクトルと行列)のみを例として扱っている
    3. NumPyのArray型と互換性を持つ
  2. Autograd
    1. Tensorのあらゆる計算の勾配(微分)を自動で計算
    2. define-by-runのフレームワーク
      1. プログラムを走らせることで逆伝搬が定義される
      2. 毎回計算は異なる
    3. メインモジュールはautograd.Variable
  3. Neural Networks
    1. torch.nnモジュールによって定義
    2. 一般的な学習の流れ
      1. 学習可能なパラメータ(重み)を持つネットワークを定義
      2. 学習データセットに対して繰り返し計算
      3. ネットワークによって入力を処理
      4. 処理結果の誤差を評価
      5. ネットワークのパラメータに勾配を逆伝搬
      6. ネットワークの重みを更新
    3. Networkを表すclassを定義し,
      1. コンストラクタ(__init__)でネットワーク構成+活性化関数を定義
      2. 関数forwardで入力から出力までの処理を定義
      3. backwardはautogradにより自動で計算される
    4. 入力データはミニバッチのみをサポートしている
    5. 単一のデータを入力する時は,input.unsqueeze(0)によって次元数を増やす必要がある