diff --git a/python/requirements.txt b/python/requirements.txt index 621864c12..2e5fa136c 100644 --- a/python/requirements.txt +++ b/python/requirements.txt @@ -3,5 +3,5 @@ requests tqdm numpy opencv-python -fastdeploy-tools +fastdeploy-tools==0.0.1 pyyaml diff --git a/tools/README.md b/tools/README.md index b1a873a59..7a0e5b668 100755 --- a/tools/README.md +++ b/tools/README.md @@ -26,14 +26,14 @@ python setup.py install ```bash # 通过pip安装fastdeploy-tools. 此工具包目前支持模型一键自动化压缩和模型转换的功能. # FastDeploy的python包已包含此工具, 不需重复安装. -pip install fastdeploy-tools==0.0.0 +pip install fastdeploy-tools==0.0.1 ``` ### 一键模型自动化压缩工具的使用 按照以上步骤成功安装后,即可使用FastDeploy一键模型自动化压缩工具, 示例如下. ```bash -fastdeploy --auto_compress --config_path=./configs/detection/yolov5s_quant.yaml --method='PTQ' --save_dir='./yolov5s_ptq_model/' +fastdeploy compress --config_path=./configs/detection/yolov5s_quant.yaml --method='PTQ' --save_dir='./yolov5s_ptq_model/' ``` 详细使用文档请参考[FastDeploy一键模型自动化压缩工具](./common_tools/auto_compression/README.md) @@ -69,7 +69,7 @@ python setup.py install 按照以上步骤成功安装后,即可使用 FastDeploy 一键转换工具, 示例如下: ```bash -fastdeploy --convert --framework onnx --model yolov5s.onnx --save_dir pd_model +fastdeploy convert --framework onnx --model yolov5s.onnx --save_dir pd_model ``` 更多详细内容可参考[X2Paddle](https://github.com/PaddlePaddle/X2Paddle) diff --git a/tools/README_EN.md b/tools/README_EN.md index 2cfffa926..5c1e2501f 100755 --- a/tools/README_EN.md +++ b/tools/README_EN.md @@ -26,14 +26,14 @@ python setup.py install ```bash # Installing fastdeploy-tools via pip # This tool is included in the python installer of FastDeploy, so you don't need to install it again. -pip install fastdeploy-tools==0.0.0 +pip install fastdeploy-tools==0.0.1 ``` ### The Usage of One-Click Model Auto Compression Tool After the above steps are successfully installed, you can use FastDeploy one-click model automation compression tool, as shown in the following example. ```bash -fastdeploy --auto_compress --config_path=./configs/detection/yolov5s_quant.yaml --method='PTQ' --save_dir='./yolov5s_ptq_model/' +fastdeploy compress --config_path=./configs/detection/yolov5s_quant.yaml --method='PTQ' --save_dir='./yolov5s_ptq_model/' ``` For detailed documentation, please refer to [FastDeploy One-Click Model Auto Compression Tool](./common_tools/auto_compression/README_EN.md) @@ -69,7 +69,7 @@ python setup.py install After successful installation according to the above steps, you can use the FastDeploy one-click conversion tool. The example is as follows: ```bash -fastdeploy --convert --framework onnx --model yolov5s.onnx --save_dir pd_model +fastdeploy convert --framework onnx --model yolov5s.onnx --save_dir pd_model ``` For more details, please refer to[X2Paddle](https://github.com/PaddlePaddle/X2Paddle) diff --git a/tools/common_tools/auto_compression/README.md b/tools/common_tools/auto_compression/README.md index e672ef094..d4b2c2546 100644 --- a/tools/common_tools/auto_compression/README.md +++ b/tools/common_tools/auto_compression/README.md @@ -40,10 +40,10 @@ wget https://bj.bcebos.com/paddlehub/fastdeploy/COCO_val_320.tar.gz tar -xvf COCO_val_320.tar.gz ``` -##### 2.使用fastdeploy --auto_compress命令,执行一键模型自动化压缩: +##### 2.使用fastdeploy compress命令,执行一键模型自动化压缩: 以下命令是对yolov5s模型进行量化, 用户若想量化其他模型, 替换config_path为configs文件夹下的其他模型配置文件即可. ```shell -fastdeploy --auto_compress --config_path=./configs/detection/yolov5s_quant.yaml --method='PTQ' --save_dir='./yolov5s_ptq_model/' +fastdeploy compress --config_path=./configs/detection/yolov5s_quant.yaml --method='PTQ' --save_dir='./yolov5s_ptq_model/' ``` ##### 3.参数说明 @@ -74,12 +74,12 @@ wget https://bj.bcebos.com/paddlehub/fastdeploy/COCO_train_320.tar tar -xvf COCO_train_320.tar ``` -##### 2.使用fastdeploy --auto_compress命令,执行一键模型自动化压缩: +##### 2.使用fastdeploy compress命令,执行一键模型自动化压缩: 以下命令是对yolov5s模型进行量化, 用户若想量化其他模型, 替换config_path为configs文件夹下的其他模型配置文件即可. ```shell # 执行命令默认为单卡训练,训练前请指定单卡GPU, 否则在训练过程中可能会卡住. export CUDA_VISIBLE_DEVICES=0 -fastdeploy --auto_compress --config_path=./configs/detection/yolov5s_quant.yaml --method='QAT' --save_dir='./yolov5s_qat_model/' +fastdeploy compress --config_path=./configs/detection/yolov5s_quant.yaml --method='QAT' --save_dir='./yolov5s_qat_model/' ``` ##### 3.参数说明 diff --git a/tools/common_tools/auto_compression/README_EN.md b/tools/common_tools/auto_compression/README_EN.md index 7e9d114ac..f68022c13 100644 --- a/tools/common_tools/auto_compression/README_EN.md +++ b/tools/common_tools/auto_compression/README_EN.md @@ -46,12 +46,12 @@ wget https://bj.bcebos.com/paddlehub/fastdeploy/COCO_val_320.tar.gz tar -xvf COCO_val_320.tar.gz ``` -##### 2. Run fastdeploy --auto_compress command to compress the model +##### 2. Run fastdeploy compress command to compress the model The following command is to quantize the yolov5s model, if developers want to quantize other models, replace the config_path with other model configuration files in the configs folder. ```shell -fastdeploy --auto_compress --config_path=./configs/detection/yolov5s_quant.yaml --method='PTQ' --save_dir='./yolov5s_ptq_model/' +fastdeploy compress --config_path=./configs/detection/yolov5s_quant.yaml --method='PTQ' --save_dir='./yolov5s_ptq_model/' ``` [notice] PTQ is short for post-training quantization @@ -83,14 +83,14 @@ wget https://bj.bcebos.com/paddlehub/fastdeploy/COCO_val_320.tar.gz tar -xvf COCO_val_320.tar.gz ``` -##### 2.Use fastdeploy --auto_compress command to compress models +##### 2.Use fastdeploy compress command to compress models The following command is to quantize the yolov5s model, if developers want to quantize other models, replace the config_path with other model configuration files in the configs folder. ```shell # Please specify the single card GPU before training, otherwise it may get stuck during the training process. export CUDA_VISIBLE_DEVICES=0 -fastdeploy --auto_compress --config_path=./configs/detection/yolov5s_quant.yaml --method='QAT' --save_dir='./yolov5s_qat_model/' +fastdeploy compress --config_path=./configs/detection/yolov5s_quant.yaml --method='QAT' --save_dir='./yolov5s_qat_model/' ``` ##### 3.Parameters diff --git a/tools/common_tools/auto_compression/__init__.py b/tools/common_tools/auto_compression/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tools/common_tools/auto_compression/fd_auto_compress/__init__.py b/tools/common_tools/auto_compression/fd_auto_compress/__init__.py index ea473ddf1..e69de29bb 100644 --- a/tools/common_tools/auto_compression/fd_auto_compress/__init__.py +++ b/tools/common_tools/auto_compression/fd_auto_compress/__init__.py @@ -1 +0,0 @@ -import fd_auto_compress diff --git a/tools/common_tools/auto_compression/fd_auto_compress/fd_auto_compress.py b/tools/common_tools/auto_compression/fd_auto_compress/fd_auto_compress.py index 5f5b62798..677725d84 100644 --- a/tools/common_tools/auto_compression/fd_auto_compress/fd_auto_compress.py +++ b/tools/common_tools/auto_compression/fd_auto_compress/fd_auto_compress.py @@ -22,7 +22,7 @@ import paddle from paddleslim.common import load_config, load_onnx_model from paddleslim.auto_compression import AutoCompression from paddleslim.quant import quant_post_static -from fd_auto_compress.dataset import * +from .dataset import * def argsparser(): diff --git a/tools/common_tools/common_tools.py b/tools/common_tools/common_tools.py index a53844f6a..d945f905a 100755 --- a/tools/common_tools/common_tools.py +++ b/tools/common_tools/common_tools.py @@ -4,8 +4,8 @@ import ast def argsparser(): parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('tools', choices=['compress', 'convert']) ## argumentments for auto compression - parser.add_argument('--auto_compress', default=False, action='store_true') parser.add_argument( '--config_path', type=str, @@ -27,7 +27,6 @@ def argsparser(): default='gpu', help="which device used to compress.") ## arguments for other x2paddle - parser.add_argument('--convert', default=False, action='store_true') parser.add_argument( '--framework', type=str, @@ -76,16 +75,11 @@ def argsparser(): def main(): args = argsparser().parse_args() - if args.auto_compress == True: - try: - from .auto_compression.fd_auto_compress.fd_auto_compress import auto_compress - print("Welcome to use FastDeploy Auto Compression Toolkit!") - auto_compress(args) - except ImportError: - print( - "Can not start auto compresssion successfully! Please check if you have installed it!" - ) - if args.convert == True: + if args.tools == "compress": + from .auto_compression.fd_auto_compress.fd_auto_compress import auto_compress + print("Welcome to use FastDeploy Auto Compression Toolkit!") + auto_compress(args) + if args.tools == "convert": try: import platform import logging diff --git a/tools/setup.py b/tools/setup.py index e0430f2df..de312e02e 100644 --- a/tools/setup.py +++ b/tools/setup.py @@ -1,10 +1,11 @@ import setuptools long_description = "fastdeploy-tools is a toolkit for FastDeploy, including auto compression .etc.\n\n" -long_description += "Usage of auto compression: fastdeploy --auto_compress --config_path=./yolov7_tiny_qat_dis.yaml --method='QAT' --save_dir='./v7_qat_outmodel/' \n" +long_description += "Usage of auto compression: fastdeploy compress --config_path=./yolov7_tiny_qat_dis.yaml --method='QAT' --save_dir='./v7_qat_outmodel/' \n" setuptools.setup( name="fastdeploy-tools", # name of package + version="0.0.1", #version of package description="A toolkit for FastDeploy.", long_description=long_description, long_description_content_type="text/plain",