たれぱんのびぼーろく

わたしの備忘録、生物学とプログラミングが多いかも

僕が考えたさいきょうのPyTorch Linting rules

命名規則: saveされる変数はexposedとして扱う

モデル状態は state_dict() で保存され、後日loadされる。
state_dict()はパラメータ(例: nn.Module) とバッファを変数名に基づいて保存し、load時は変数名に基づいて状態がrestoreされる。
なのでモジュール内の変数名は自由にリファクタリングしまくれるものではない。
これを外部からloadを介したアクセスがあるとみなると、アンダースコア先頭のプライベート変数でなく、外部アクセスのある公開APIと見なせる。
なので保存されるパラメータとバッファはアンダースコア先頭禁止、exposeされたものとして扱う(簡単に変えてはいけない)。