FC2カウンター FPGAの部屋 DeepLearningのモデル軽量化 Distiller を試す4
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

DeepLearningのモデル軽量化 Distiller を試す4

DeepLearningのモデル軽量化 Distiller を試す3”の続き。

DeepLearningのモデル軽量化 Distiller を試す2”でGradual Pruning をやってみたがうまく行かなかった。
@_tkato_ さんから修正情報をいただいたので、もう一度やってみよう。ありがとうございました。

最初にもう一度simplenet_cifar の学習を行った。
python3 compress_classifier.py --arch simplenet_cifar ../../../data.cifar10 -p 30 -j=1 --lr=0.01
distiller_26_190222.png

logs/2019.02.22-115332 ディレクトリのbest.pth.tar checkpoint.pth.tar をsimplenet_cifar ディレクトリに移動した。
cd logs/2019.02.22-115332/
cp best.pth.tar ../../simplenet_cifar/best.pth.tar
cp checkpoint.pth.tar ../../simplenet_cifar/checkpoint.pth.tar
cd ../..


simplenet_cifar.schedule_agp.yaml を修正した。修正した simplenet_cifar.schedule_agp.yaml を示す。

version: 1
pruners:
  conv1_pruner:
    class: 'AutomatedGradualPruner'
    initial_sparsity : 0.15
    final_sparsity: 0.3
    weights: ['conv1.weight']

  conv2_pruner:
    class: 'AutomatedGradualPruner'
    initial_sparsity : 0.15
    final_sparsity: 0.5
    weights: ['conv2.weight']

  fc_pruner:
    class: 'AutomatedGradualPruner'
    initial_sparsity : 0.15
    final_sparsity: 0.80
    weights: ['fc1.weight', 'fc2.weight','fc3.weight']

lr_schedulers:
  pruning_lr:
    class: StepLR
    step_size: 30
    gamma: 0.10

policies:
  - pruner:
      instance_name : 'conv1_pruner'
    starting_epoch: 1
    ending_epoch: 100
    frequency: 2

  - pruner:
      instance_name : 'conv2_pruner'
    starting_epoch: 1
    ending_epoch: 100
    frequency: 2

  - pruner:
      instance_name : 'fc_pruner'
    starting_epoch: 1
    ending_epoch: 100
    frequency: 2

  - lr_scheduler:
      instance_name: pruning_lr
    starting_epoch: 1
    ending_epoch: 100
    frequency: 1


学習したbest.pth.tar に対して、Gradual Pruningを実行した。
time python3 compress_classifier.py --arch simplenet_cifar ../../../data.cifar10 -p 50 --lr=0.001 --epochs=200 --resume=simplenet_cifar/best.pth.tar --compress=simplenet_cifar.schedule_agp.yaml
distiller_27_190222.png

今度はうまく行ったようだ。
TensorBoard の結果を示す。
distiller_28_190223.png
distiller_29_190223.png
distiller_30_190223.png

--summaryオプションをやってみよう。最初に学習したネットワークの --summary=sparsity の結果を示す。
distiller_31_190223.png

Total sparsity: 0.00 だった。

次に、Gradual Pruning 後のネットワークの --summary=sparsity の結果を示す。
distiller_32_190223.png

Total sparsity: 78.47 だった。うまく行っている。
  1. 2019年02月23日 05:48 |
  2. DNN
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/4453-1bcf765e
この記事にトラックバックする(FC2ブログユーザー)