April 2020
Intermediate to advanced
552 pages
6h 13m
Japanese
DeZeroは教育面を重視し、分かりやすさを優先しています。そのため、パフォーマンスはいくらか犠牲にしています。実際これまで、処理速度やメモリの使用量に対して注意を払ってきませんでした。本ステップと次のステップでは、パフォーマンスを改善できる対策(テクニック)をDeZeroに取り入れます。ここでははじめに、Pythonでのメモリ管理について学びます。
![]() |
|
Pythonはプログラム言語ですが、その実態はPythonというコードを実行するプログラムです。そのプログラムは通常、「Python処理系」や「Pythonインタプリタ」と呼ばれます。なお、標準的に使用されるPython処理系は、C言語で実装されたCPythonです。ここでのPythonのメモリ管理の説明は、CPythonのそれに従います。 |
Pythonでは、不要になったオブジェクトはメモリから自動で消去されます。この有り難い機能によって、私たち自身がメモリ管理を意識するケースは格段に減ります。不要なオブジェクトは、Python処理系が(私たちの裏側で)解放してくれるので、私たちはプログラミングのより重要な作業に集中できます。しかし適切なコードを書かなければ、ときにメモリリークやメモリ不足などの問題が発生します。特にニューラルネットワークでは、サイズの大きなデータを扱うケースが多くあります。そのため、メモリ管理を適切に行わなければ、メモリ不足で実行に時間がかかる(GPUの場合は、メモリ不足で実行できない)ということが容易に起こりえます。 ...
Read now
Unlock full access