The "Design-by-Run" scheme is also an important design decision to neuron that has both pros and cons. Most existing neural network library today follows "Design-and-Run" scheme or a declarative approach that first compile a pre-determined network structure and then train against a dataset. In such way, one can pre-allocate any necessary cache space to ensure that there are minimal memory reallocations in training, thus minimize the memory footprint whenever possible and have substantially optimized performance. Meanwhile, such a declarative approach also makes the underlying neural network static during the lifetime of training. The "Design-by-Run" scheme instead treats the neural networks morphologically, i.e. they are composed and (can) deform on-the-fly. At a cost, it will ask for onsite memory allocation whenever needed簡単に日本語でまとめると
Neural Networkの設計にはDesign-and-RunとDesign-by-Runという二つの設計思想がある。
Design-and-run
- 今日の一般的なスキーマで宣言的なアプローチに分類される
- 宣言的なアプローチとは事前に決定されたネットワーク構造を利用し、トレーニングを行うもの。
- キャッシュスペースが事前に割り当てられるので、メモリの使用を最小化し、性能を最適化することができる。しかしトレーニングの間にネットワーク構造を変更できないという欠点がある。
Design-by-run
- ニューラルネットワークを形態学的に(morphologically)扱うことができる。
- ネットワークの構造変更が容易にできるが、メモリの割り当てなどは最適化できない。
https://github.com/bobye/neuron/wiki/Basics#design-rationale
0 件のコメント:
コメントを投稿