- Published on
Distillerの検証環境をDockerで作った
PyTorch 向けの軽量化ライブラリであるDistillerを触る環境を Docker で作っただけの話
過去に記事をかいた。
Distiller で DeepLearning のモデルを軽量化: Gradual Pruning 編 - tkato’s blog
FPGA の部屋の@marsee101さんが、ありがたい事に記事を読んで試してくださった。が、うまくうごかないそう。 結論から言うと設定の yaml ファイルが今の Distiller だと動かないみたいで、修正したら動いた。
https://twitter.com/_tkato_/status/1098310005676138501 https://twitter.com/_tkato_/status/1097975452126216192
今回は、Distiller で遊べる Docker 環境を作ってみた。 某 Web 系企業で鍛えられたので、Docker で検証環境を立ち上げて試行錯誤するのも慣れてきた。
https://github.com/tkat0/testing-distiller
似たようなもので tvm の遊べる環境も作ってる。
https://github.com/tkat0/tvm-playground
ちょっとした自慢である。
環境構築は、以下。
Distiller を clone して Python パスを通した Docker コンテナを立ち上げて、そこに bash でログインしている。
ちょっとした検証用なので Python の base image を使ってるので GPU では動かない点に注意。
$ docker-compose up -d cpu
$ docker-compose exec cpu bash
実験中はコンテナで複数プロセスを実行する事が多い(学習プロセスや tensorboard など)ので、上記のように docker-compose up -d で立ち上げて、 docker-compose exec で bash を生やして作業することが多い。
以前書いたブログ相当の学習実行は以下。
Distiller の examples を自身のリポジトリにコピーして使ってる。
まずは pretraining
root@1aff972ccdde:/work# cd examples/classifier_compression
root@1aff972ccdde:/work/examples/classifier_compression# python compress_classifier.py --arch simplenet_cifar ../../dataset/data.cifar10 -p 30 -j=1 --lr=0.01
そして pruning しながら fine-tuning
root@1aff972ccdde:/work/examples/classifier_compression# python compress_classifier.py --arch simplenet_cifar work/dataset/data.cifar10 -p 50 --lr=0.001 --epochs=200 --resume=simplenet_cifar/best.pth.tar --compress=simplenet_cifar.schedule_agp.yaml
どうやら以前書いた simplenet_cifar.schedule_agp.yaml だと現状動かないようだった。ちゃんと追ってないけど、以下でうまく動いているっぽい。
以下の修正。
Distiller、pip install でインストールできるとありがたいんだけどな…