ubuntu16.04
python3.6
tensorflow1.12
官網教程:
官網提供了三種pocketflow部署方法,分別為:本地、docker、seven,這裡我使用的是local開發方法。安裝步驟:
$ git clone
進入pocketflow主目錄,拷貝path.conf.template並重命名為path.conf,修改裡面的資料集路徑,這裡我用的是cifar10來做分類。
-n=8 表示gpu的數量,根據自己的配置進行調整,生成的模型在models資料夾了,最後看到loss和acc效果分別如下:
info:tensorflow:loss = 4.4453e-01使用的是discrimination-aware channel pruning(dcp)演算法。info:tensorflow:accuracy = 9.2500e-01
# local mode with 1 gpu
$ ./scripts/run_local.sh nets/resnet_at_cifar10_run.py \
--learner dis-chn-pruned
# docker mode with 8 gpus
$ ./scripts/run_docker.sh nets/resnet_at_cifar10_run.py -n=8 \
--learner dis-chn-pruned
# seven mode with 8 gpus
$ ./scripts/run_seven.sh nets/resnet_at_cifar10_run.py -n=8 \
--learner dis-chn-pruned
生成的dcp演算法壓縮模型在models_dcp目錄下,預設的dcp_prune_ratio剪枝率為0.5。
$ ./scripts/run_local.sh nets/resnet_at_cifar10_run.py \
--learner dis-chn-pruned \
--enbl_dst \
--dcp_prune_ratio 0.75
剪去了3/4,即卷積層網路規模變為原來的1/4。剪枝後的模型生成在models_dcp_eval目錄下,我們看到loss: 9.63+,acc: 0.846,對比沒剪枝之前,發現變換還是挺大的,loss變大很多,acc下降了約8個百分點,畢竟減去了3/4的網路,效果如下:
官網還有很多配置選項,建議去看官方的配置選項詳解。
轉換 checkpoint 檔案為 *.tflite 檔案,來部署到移動端裝置:
# convert checkpoint files into a *.tflite model
$ python tools/conversion/export_pb_tflite_models.py \
--model_dir models_dcp_eval
報了乙個錯誤:
是net_input的輸入資料型別出問題了,把 int32改為np.float32型別就可以了。
修改tools/conversion/export_pb_tflite_models.py 289行
interpreter.set_tensor(input_details[0]['index'], net_input_data)
# 改為:
interpreter.set_tensor(input_details[0]['index'], net_input_data.astype(np.float32))
可以看到在pocketflow/models_dcp_eval/目錄下生成 model.pb model.tflite兩個檔案,檔案都很小,用於部署移動端裝置最合適了。
todo
全鏈路壓測流量模型
現在全鏈路越來越火,各大廠商也紛紛推出了自己的全鏈路壓測測試方案。特別是針對全鏈路壓測流量模型,各家方案都有所不同。最近我看了一些這方面的資料,有一些感悟。分享給大家。全鏈路壓測流量模型的梳理呢,這裡就先不講了,各家公司自有司情在。因為主要是全鏈路壓測模型的實現,其實實現也對應了流量模型的梳理結果。...
計蒜客 騰訊狼人殺 簡單 狀壓 列舉
很久很久以前,在萊茵河畔一座岸壁陡峭的山頂上,有乙個名叫 杜斯特瓦德 的小村莊。不久前,這個小村莊每晚都會受到狼人的侵襲。每個夜晚,狼人都會在村中進行搶劫,並且會有乙個村民成為這群狼人的犧牲品。然而村民們不會坐以待斃,他們試圖在白天找到這些狼人並處決他們。作為杜斯特瓦德村的長老,你需要組織村民來對抗...
棋盤式狀壓DP模型總結
狀壓dp分兩大類,一類是集合式,另一類就是棋盤式 即基於連通性 其中,集合式狀壓dp難度相較後者略大,形式複雜多變。而棋盤式狀壓dp的題目樣式都相差不多,解法也都殊途同歸,因此將這一類題進行總結,不難歸結出一套解題模板。我們先看以下三個例題。題目鏈結 狀態表示 f i,j,s 表示已經在前i行放了j...