ニューラルネットワークのプルーニング(Pruning・枝刈り)
関連記事:TensorFlow 2.0 主な変更点 今回の記事はTensorFlow モデル最適化ツールキットにあるPruning APIを解説と実験を行います。 目次 1. ニューラルネットワークのプルーニングとは ___1.1 プルーニングの概要 ___1.2 TensorFlow モデル最適化ツールキット — Pruning API 2. 実験 ___2.1 環境構築 ___2.2 データのロード ___2.3 NNモデル ___2.4 プルーニングモデル ___2.5 モデルの評価 ___2.6 TensorFlow Liteでモデル圧縮 3. まとめ 1. ニューラルネットワークのプルーニング(枝刈り)とは 1.1 プルーニングの概要 ニューラルネットワークのプルーニングとは、機械学習アルゴリズムを最適化する方法の一つとして、ニューラル ネットワークのレイヤー間のつながり(パラメーター)を削除することです。これにより、パラメーターの数を減らして計算を高速化します。 実際には、ニューラル ネットワークのパラメーターの値をゼロにすることで、ニューラル ネットワークのレイヤー間の不要なつながりと見なしたものを削除します。この処理はトレーニング プロセスで行います。繋がりを消すもの以外に、重みを0にすることでプルーニング(枝刈り)とも言います。 1.2 TensorFlow モデル最適化ツールキット — Pruning API 重みのプルーニングを行う API は、Keras をベースに構築されています。そのため、このテクニックはどんな既存の Keras …