关于paddle_merge_model 一些疑问
Created by: NHZlX
paddle_merge_model
可以将模型配置文件以及模型给融合成一个文件, 用于capi 前向预测
目前的paadle_merge_model
用法如下:
假设模型配置和模型分别为 mobilenet.py
mobilenet.tar.gz
touch path.txt
echo "mobilenet.py" > path.txt
mkdir temp_paddle_model
mv path.txt mobilenet.py ./temp_paddle_model
tar -zxvf mobilenet.tar.gz -C ./temp_paddle_model
paddle_merge_model --model_dir ./temp_paddle_model --model_file ./mobilenet.paddle
rm -rf ./temp_paddle_model
其中 paddle_merge_model
参数 --model_dir
为解压模型的目录, --model_file
为要生成的融合文件
我认为有以下几个问题:
-
1.为什么不直接在
paddle_merge_model
命令行参数中指定模型配置文件的路径,而是先创建一个path.txt,从而让用户多了至少三次操作。使用path.txt的方式,是有特殊的需求么? -
2.融合过程中模型配置文件需要改动:
from paddle.trainer_config_helpers import * settings(batch_size = 1) def mobilenet(): //mobilenet config return out out = mobielnet() outputs(out)
目前基本都是v2的api, 这样做的话还需要手动的去添加outputs(out) settings(...), 我认为模型配置文件写好了之后, 就能适用于不同的应用场景, 而不是根据不同的场景手动修改模型配置
关于第一个问题我感觉可以在 paddle_merge_model
的命令行指定模型配置文件的路径,如下:
mkdir temp_paddle_model_zip_file
tar -zxvf ${MODEL_DIR} -C ./temp_paddle_model_zip_file
paddle_merge_model —model_dir ${MODEL_DIR} —config_dir ${CONFIG_DIR} —model_file ${MODEL_FILE}
rm -rf ./temp_paddle_model_zip_file
第二个问题 不知道如何怎么好的去解决 以下有个比较low的解决方式, 另外写一个config.py
from mobilenet import mobile_net
from paddle.trainer_config_helpers import *
settings(batch_size=1)
out = mobile_net()
outputs(out)
这样可以避免修改模型配置文件