Caffe學習系列(九) 網路壓縮與剪枝

2021-09-02 11:30:36 字數 3489 閱讀 2271

flag

1. 網路壓縮

github 搜 deep compression 結果

使用方法:

export caffe_root=$your_caffe_root

python decode.py /absolute_path_to/squeezenet_deploy.prototxt /absolute_path_to/compressed_squeezenet.net /absolute_path_to/decompressed_squeezenet.caffemodel

note: decompressed_squeezenet.caffemodel is the output, can be any name.

$caffe_root/build/tools/caffe test --model=squeezenet_trainval.prototxt --weights=decompressed_squeezenet.caffemodel --iterations=1000 --gpu 0

1.2 deepcompression-caffe
內含 lenet 壓縮例程 train_compress_lenet.py

使用方法:

# clone repository and make 

$ git clone .git

$ cd deepcompression-caffe

$ make -j 32

# run demo script, this will finetune a pretrained model

$ python examples/mnist/train_compress_lenet.py

1.3 其他
網路剪枝:【用python學習caffe】7. 網路結構的修剪

github 倉庫:caffe-python-tutorial

caffe for sparse and low-rank deep neural networks

easydeepcompression

1.4 重要參考

deep compression閱讀理解及caffe原始碼修改

深度學習 模型 剪枝

深度學習模型壓縮方法綜述(一)

2. 網路剪枝

2.1 網路剪枝

caffemodel的剪枝與壓縮(一)

**:《pruning filters for efficient convnets》

剪枝分類了解一下《手把手ai專案》十

一、深度學習中模型model的剪枝筆記

剪枝型別

**記錄-pruning filters for efficient convnets

**品讀:pruning filters for effecient convnets

**原始碼

2.2 caffe-python-tutorial
caffe-python-tutorial

目前

目前,已經復現 prune.py 對 lenet5 的裁剪,對 vgg_ssd 測試存在問題

發生以下報錯:

check failed: fd != -1 (-1 vs. -1) file not found: data/voc0712/labelmap_voc.prototxt
原因:/caffe-ssd/models/vggnet/voc0712/ssd_300x300/deploy.prototxt 路徑有問題,改為絕對路徑即可

output_name_prefix: "comp4_det_test_"

output_format: "voc"

label_map_file: "data/voc0712/labelmap_voc.prototxt"

3. 模型量化
參考專案:

基於caffe-int8-convert-tools進行caffe模型轉int8量化日常記錄

《手把手ai專案》十、利用量化工具caffe-int8-convert-tools實現caffemodel量化(double32->int8)

實現原理:

基於tensorrt方案的int8量化實現

python2 caffe-int8-convert-tool-dev.py --proto=test/models/mobilenetssd_deploy_new.prototxt --model=test/models/mobilenetssd_deploy_new.caffemodel --mean 127.5 127.5 127.5 --norm=0.007843 --images=test/images/ --output=test/mobilenetssd.table
切換到 caffe-int8-convert-tools/test 目錄下

/home/hitwh/workspace/ncnn/build/tools/caffe/caffe2ncnn /home/hitwh/workspace/caffe-int8-convert-tools/test/models/mobilenetssd_deploy_new.prototxt /home/hitwh/workspace/caffe-int8-convert-tools/test/models/mobilenetssd_deploy_new.caffemodel mobilenetssd-int8.param mobilenetssd-int8.bin 256 mobilenetssd.table
cnn模型 int8 量化實現方式(一)

cnn模型 int8量化實現方式(二)

神經網路壓縮 剪枝 量化 嵌入式計算優化ncnn mobilenet squeezenet shufflenet

3. 安卓端優化

基於ncnn的深度學習演算法優化(一)

深度學習實戰教程(1)–手機上跑目標檢測模型(yolo,從darknet到caffe再到ncnn完整打通)

樹莓派3b完成ncnn框架測試

神經網路高效能計算 卷積計算優化 openblas gemm 矩陣乘法優化 ncnn mobilenet-ssd shueezenet-ssd

Caffe學習筆記1 網路配置檔案引數

layer transform param data param layer param convolution param bias filler layer 注 pooling層的運算方法和卷積層基本一樣。sigmod 可能會出現殺死梯度的現象,用的很少。layer relu 是目前使用最多的啟...

Docker入門與應用系列(四)網路管理

在使用docker run建立docker容器時,可以用 net選項指定容器的網路模式,docker有以下5種網路模式 1.bridge模式 2.host模式 使用docker run net host指定,這種模式docker server將不為docker容器建立網路協議棧,即不會建立獨立的ne...

caffe學習系列 繪製網路模型

python draw net.py,這個檔案,就是用來繪製網路模型的。也就是將網路模型由prototxt變成一張。在繪製之前,需要先安裝兩個庫 安裝graphviz sudo apt get install graphviz注意,這裡用的是apt get來安裝,而不是pip.2 安裝pydot s...